2014-08-31 64 views
6

我制作了一个TextView,其中文本自动开始垂直滚动,就像电影中的结尾信用一样。 在文本中有一个链接到一个网站。文字滚动顺畅,链接打开网页浏览器。自动垂直滚动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); 

回答

0

解决方案可能是在TextView前面放置一个Button,并为该按钮设置setOnClickListener(),以便TextView不会接收交互。我认为问题在于,当点击它时,TextView的焦点会发生变化。我可能是错的,但你可以尝试这种方法