我正在尝试实现一个ListView,其中包含一个TextView,当文本太长时会自动滚动。到目前为止,还不错,但是我的问题是,显示该项目后立即开始滚动,因此用户没有机会阅读前几个字母。我想知道滚动开始是否有任何延迟?
这是我的代码:
<TextView
android:id="@+id/item_track"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit ="marquee_forever"
android:focusable="true"
android:focusableInTouchMode="true"
android:scrollHorizontally="true"
android:text="Username"
android:textColor="#fff"
android:textSize="17sp"
app:fontFamily="sans-serif"
/>
答案 0 :(得分:0)
我有同样的问题。
我通过使用在UI线程上运行的处理程序解决了这个问题:
Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(() -> textView.setSelected(true), 1000);
处理程序的postDelayed()使您可以在经过一定时间后触发可运行对象。在我的示例中,文本视图将停留1秒(1000毫秒),然后在处理程序执行时开始滚动动画。