我在 ScrollView 中有一个 TextView,TextView 充满了大文本,任何时候只有部分文本在屏幕上可见。
现在我想(以编程方式)强制文本的某些部分对用户可见。例如,我的文字是:
Lorem ipsum dolor sat amet,consectetur adipiscing elit。 Ut id antetellus。 Nulla facilisi。 Sed gravida fringilla velit,non sollicitudin Tellus egestas non。 Cras congue,nulla id bibendum tempus,dui dui blandit elit,elementum dictum dolor eros et mi。 Nullam leo Tellus,aliquet veltincidunt sed,suscipit nec dui。 Nunc dapibus、iodio 前庭 hendrerit 前庭、lorem orci dictum arcu、quis porttitor lorem libero 坐 amet odio。 Sed imperdiet viverra diam, eu porttitor ipsum fringilla et. Suspendisse consectetur sapien ac felistincidunt dictum。 Suspendisse ultrices porta dignissim。 Maecenas in nibh sed nisi facilisis dignissim non uttortor。 Pellentesque eleifend tempus sem,坐在 amet mattis arcu auctor id 上。 Vivamus 位于前庭 adipiscing 处。暂停效力。整数 sollicitudin laoreet enim ac suscipit。 Quisque convallis facilisis pharetra。
我想强制使用粗体字(tortor在这个例子中)是visible给用户(也许通过使用正确的值垂直滚动文本视图)。
有什么办法可以做到这一点吗?
编辑:我不想把这个词加粗!更新了问题以澄清我的请求。
这是滚动到特定单词的一种方法:
public void scrollToWord(String string) {
TextView textView = (TextView) findViewById(R.id.text1);
String text = textView.getText().toString();
// Find the first occurrence of the word
int position = text.indexOf(string);
// Calculate how far in the word is: 30%, 40%, 73%
int percent = (int) (position / (double) text.length() * 100);
// Calculate how far to scroll
int y = textView.getHeight() * percent;
// Finally scroll
((ScrollView) textView.getParent()).scrollTo(0, y);
}
我对此有两个注释:
这只会滚动到第一个出现的位置,但很容易更改为String.indexOf(string, start)
并找到第二个、第三个等等。
如果您想在应用程序启动后立即滚动到此位置,则必须等到 onResume() 完成后。但是没有方法可以做到这一点......我建议使用处理程序,如果您需要的话我可以帮助您。
希望有帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)