我使用了一个可检查的列表视图(我已设置: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,我不知道哪个方法覆盖。
您可以帮我在选中项目时滚动文字吗?感谢。
答案 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);