【发布时间】:2014-10-25 02:40:34
【问题描述】:
我制作了一个 TextView,其中文本自动开始垂直滚动,就像电影中的片尾字幕一样。 在文本中有一个网站的链接。文本滚动流畅,链接打开网络浏览器。
但是,当点击链接时,文本开始向后滚动,向下滚动到 TextView 的底部,并在此处停止。
我希望文本继续滚动,即使点击了链接。 怎么办?
文本框布局(activity_main.xml):
<TextView
android:id="@+id/text_box"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="6"
android:text="@string/text" />
要滚动的文本(strings.xml):
<string name="text">
bla bla\nlotsa bla\n\n<a href="http://www.stackoverflow.com">stackoverflow.com</a>
</string>
文本框和滚动条(MainActivity.java):
private TextView mTextBox;
private Scroller mTextScroller;
mTextBox = (TextView) findViewById(R.id.text_box);
mTextBox.setMovementMethod(LinkMovementMethod.getInstance()); // Making the link clickable
mTextScroller = new Scroller(this, new LinearInterpolator()); // Create new scroller
mTextBox.setScroller(mTextScroller); // Set the scroller to the text view
让文本开始滚动(MainActivity.java):
int startY = mTextBox.getHeight();
int lineHeight = mTextBox.getLineHeight();
int lineCount = mTextBox.getLineCount();
int duration = 10000; // Milliseconds
int startX = 0;
int dx = 0;
int dy = startY + lineHeight * lineCount;
mTextScroller.startScroll(startX, -startY, dx, dy, duration);
【问题讨论】:
标签: android hyperlink textview vertical-scrolling