android - 无法使用选择器突出显示 RecyclerView 中的项目
问题描述
当我按下它时,我只想突出显示项目。
我在下面有选择器(@drawable/expandable_menu)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_mediumAnimTime">
<item android:drawable="@color/purple_200" android:state_pressed="true" />
<item android:drawable="@color/purple_500" android:state_selected="true" />
<item android:drawable="@color/chat" android:state_activated="true" />
<item android:drawable="@color/transparent"/>
</selector>
在我的 onclick 监听器中,我选择了这个项目
回收站视图 XML:
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="70dp"
android:id="@+id/chat_messages"
app:stackFromEnd="true"
android:clickable="true"
android:focusableInTouchMode="true"
android:background="@drawable/expandable_menu"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
android:focusable="true">
消息 XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="10dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingTop="10dp"
android:layout_gravity="left"
>
<TextView
android:id="@+id/chat_msg_send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="this is me"
android:textColor="@color/black"
android:textSize="16dp"
android:background="@color/cardview_shadow_start_color"
android:padding="10dp"
android:layout_alignParentTop="true" />
</RelativeLayout>
我遵循了这个答案(https://stackoverflow.com/a/30046476)但没有成功
解决方案
您必须设置OnClickListener
为View
,将选择器设置为背景。我看到您为TextView
(child) 设置了选择器,您是在将 onClick 设置为此View
还是为整体itemView
(在您的情况下是 root RelativeLayout
)?
您也可以尝试添加- 当父按下时android:duplicateParentState
,TextView
这应该使TextView
绘制按下状态,而不仅仅是它本身(当没有设置TextView
时,它根本不可点击)OnClickListener
推荐阅读
- sql-server - 在查询中运行注释时出现错误 ExecuteReader:CommandText
- kubernetes - 并行运行多个作业时 Kubernetes 作业状态更新延迟
- javascript - 为什么jQuery在按类型和ID选择时返回多个元素?
- npm - npm install 命令在 npm 脚本中不起作用
- azure - 在 Kubernetes 中删除外部指标
- c++ - 更新 sourceModel() 而不对 QSortFilterProxyModel 应用过滤
- android - 如何在 ViewPager2 中使用 PagerTitleStrip?
- ios - 当viewcontroller设置tableview时NavigationBar重新设计
- c++ - 返回指向数组虚拟模板函数的指针
- google-chrome - 由于用户偏好,未存储此 set-cookie