在ListView中使用选取框的Android的TextView在第一次显示时不会设置动画

Big*_*tos 3 android listview marquee

我有一个带有自定义适配器的ListView.其中的每个项目都包含TextView.

<TextView
    android:id="@+id/chat_name"
    android:layout_height="48dp"
    android:layout_width="match_parent"
    android:textColor="#FFFFFF"
    android:gravity="center_vertical"
    android:ellipsize="marquee"
    android:marqueeRepeatLimit="marquee_forever"
    android:singleLine="true"
    android:focusable="false"
    android:focusableInTouchMode="false"/>
Run Code Online (Sandbox Code Playgroud)

我需要这个TextView不可聚焦,因为我依赖于该onListItemClick()方法.据我所知,onListItemClick()如果你设定,就不会开火focusable="true".

在我设置的适配器中:

TextView chatName = (TextView) v.findViewById(R.id.chat_name);
chatName.setText(chat.getChatName());
chatName.setSelected(true);
Run Code Online (Sandbox Code Playgroud)

它每次都有效,但第一次有效.将项目添加到适配器时,它将显示在列表视图中,但不会对其进行标记.单击项目时,将显示另一个活动.用户返回ListView后,该项突然出现.我希望它一直都会被玷污.

我已经尝试使用覆盖的方法对TextView进行子类化,isFocused()以便始终返回true,但这没有帮助.行为保持不变.我还尝试了各种价值观focusablefocusableInTouchMode属性,但没有成功.

小智 6

请使用requestFocus()函数如下.

chatName.setSelected(true);
chatName.requestFocus();
Run Code Online (Sandbox Code Playgroud)

我会工作的.