gpt4 book ai didi

android - RecyclerView 项目的按下状态

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:11:38 25 4
gpt4 key购买 nike

我使用水平 recyclerview 作为自定义底部导航栏。我想为每个项目定义一个按下状态,以便它们的颜色可以改变。

我试过这样做但是做不到

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/menu_pressed" android:state_activated="true" />
<item android:drawable="@color/menu_pressed" android:state_pressed="true" />
<item android:drawable="@color/menu_pressed" android:state_checked="true" />
<item android:drawable="@color/menu_pressed" android:state_focused="true" />
<item android:drawable="@color/menu" />
</selector>

回收者观点:

 <android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="65dp"
android:layout_gravity="bottom"
android:background="@drawable/menu_selector"
android:fadingEdge="vertical|horizontal"
android:fadingEdgeLength="60dp"
android:fillViewport="false"
android:requiresFadingEdge="horizontal|vertical"
app:layoutManager="android.support.v7.widget.LinearLayoutManager"
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true">

最佳答案

使用 RecyclerView,您无法像使用 ListView 那样为每个项目定义和设置单个选择器。它必须在 viewholder 级别完成。

因此每个项目布局都必须有一个选择器设置为背景。

<FrameLayout
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:background="@drawable/menu_selector">

然后在你的适配器 onBind 中你可以设置一个点击监听器,它应该可以工作

holder.frame.setOnClickListener {
// do something
}

关于android - RecyclerView 项目的按下状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48860543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com