我在 ScrollView 中有一个 TextView,TextView 填充了一个大文本,在任何时候都只能在屏幕上看到其文本的一部分。
现在我想(以编程方式)强制文本的某些部分对用户可见。例如,我的文字是:
Lorem ipsum dolor 坐 amet,consectetur adipiscing 精英。众所周知。 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 vel tincidunt sed,suscipit nec dui。 Nunc dapibus、odio 前庭、hendrerit 前庭、lorem orci dictum arcu、quis porttitor lorem libero 坐 amet odio。 Sed imperdiet viverra diam、eu porttitor ipsum fringilla 等。 Suspendisse consectetur sapien ac felis tincidunt dictum。 Suspendisse ultrices porta dignissim。 Maecenas in nibh sed nisi facilisis dignissim non ut Tortor 。 Pellentesque eleifend tempus sem,坐 amet mattis arcu auctor id。 Vivamus 在 Tortor rutrum diam 前庭 adipiscing。暂停潜力。整数 sollicitudin laoreet enim ac suscipit。 Quisque convallis facilis pharetra。
我想强制粗体字(在本例中为 tortor )对用户来说是 可见的 (也许通过使用正确的值垂直滚动文本 View )。
有没有办法做到这一点?
编辑:我不想把这个词加粗!问题已更新以澄清我的要求。
最佳答案
这是滚动到特定单词的一种方法:
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)
并找到第二次、第三次等。 希望有帮助!
关于android - 如何使长 TextView 的一部分在屏幕上可见?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12146967/