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,但这没有帮助.行为保持不变.我还尝试了各种价值观focusable和focusableInTouchMode属性,但没有成功.
小智 6
请使用requestFocus()函数如下.
chatName.setSelected(true);
chatName.requestFocus();
Run Code Online (Sandbox Code Playgroud)
我会工作的.