选中项目时使用选取框滚动文本

时间:2012-06-12 15:18:57

标签: android android-listview textview

我使用了一个可检查的列表视图(我已设置:Mylistview.setChoiceMode(1))。

在每行中,我有2个ImageViews和2个TextViews。

我想在检查项目时,如果文本太长,TextViews中的文本会滚动。所以在我的行的XML中,我将以下内容分配给我的两个TextView:

android:singleLine="true" 
android:ellipsize="marquee" 
android:marqueeRepeatLimit="marquee_forever"

不幸的是,只有当项目被聚焦而未被检查时,这才会使文本滚动。

所以我想到的解决方案是:

1)制作我自己的自定义TextView类,并在选中时使其自动聚焦(我不知道是否可能?)

2)即使我们处于触控模式,也要将焦点置于选中的项目上(使用SetFocusableInTouchMode

我还没有完成第二个解决方案,如果我想创建自己的自定义TextView,我不知道哪个方法覆盖。

您可以帮我在选中项目时滚动文字吗?感谢。

1 个答案:

答案 0 :(得分:0)

您需要执行以下操作。

int scrollAmount = mTextView.getLayout().getLineTop(mTextView.getLineCount())
        -mTextView.getHeight();

// if there is no need to scroll, scrollAmount will be <=0
if(scrollAmount>0)
    mTextView.scrollTo(0, scrollAmount);
else
    mTextView.scrollTo(0,0);