我很乐意为我的开源库启用触摸反馈。
我创建了一个回收视图
和一个卡片视图
。cardwiew
包含具有不同onClick
操作的不同区域。现在,如果用户点击卡上的任何地方,我很想触发连锁反应,但我无法实现这种行为。
这是我的列表,你也可以在GitHub上找到:https://github.com/mikepenz/AboutLibraries/blob/master/library/src/main/res/layout/listitem_opensource.xml
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:background="@drawable/button_rect_normal"/>
<LinearLayout
android:padding="6dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:gravity="center_vertical"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/libraryName"
android:textColor="@color/title_openSource"
android:textSize="@dimen/textSizeLarge_openSource"
android:textStyle="normal"
android:layout_width="0dp"
android:layout_weight="5"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"/>
<TextView
android:id="@+id/libraryCreator"
android:textColor="@color/text_openSource"
android:textStyle="normal"
android:layout_width="0dp"
android:layout_weight="2"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:gravity="right"
android:maxLines="2"
android:textSize="@dimen/textSizeSmall_openSource"/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginTop="4dp"
android:background="@color/dividerLight_openSource"/>
<TextView
android:id="@+id/libraryDescription"
android:textSize="@dimen/textSizeSmall_openSource"
android:textStyle="normal"
android:textColor="@color/text_openSource"
android:padding="8dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="20">
</TextView>
<View
android:id="@+id/libraryBottomDivider"
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginTop="4dp"
android:background="@color/dividerLight_openSource"/>
<LinearLayout
android:id="@+id/libraryBottomContainer"
android:gravity="center_vertical"
android:paddingLeft="8dp"
android:paddingTop="4dp"
android:paddingRight="8dp"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/libraryVersion"
android:textColor="@color/text_openSource"
android:textStyle="normal"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:gravity="left"
android:maxLines="1"
android:textSize="@dimen/textSizeSmall_openSource"/>
<TextView
android:id="@+id/libraryLicense"
android:textColor="@color/text_openSource"
android:textStyle="normal"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:gravity="right"
android:maxLines="1"
android:textSize="@dimen/textSizeSmall_openSource"/>
</LinearLayout>
</LinearLayout>
并且在该布局的3个部分上设置了onClick
libraryCreator
,libraryDescription
,以及libraryBottomContainer
。
我希望有人知道这里出了什么问题。
谢谢你的帮助。
为了我:
android:background="?android:attr/selectableItemBackground"
终于成功了。请参阅项目背后的recyclerView/内容的背景,以及与recyclerView一起使用的连锁反应。
CardLayout只是ViewGroup的一个子类,因此设置:
android:background="?android:attr/selectableItemBackground"
应该能做到。
更新:
(看起来您正在尝试使用自定义波纹颜色。)
尝试使用具有自定义颜色的ripple drawable作为背景(我没有使用此选项,因此无法验证此行为。)请参阅:文档或此问题以帮助您开始。
假设您使用的是Material/Appcompat主题和Lollipop,我通过使CardView具有以下属性来实现这一点:
android:focusable="true"
android:clickable="true"
android:foreground="?android:attr/selectableItemBackground"
我写了一个react-native应用程序,我注意到,虽然按钮看起来像原生按钮时,点击,但他们不像一个行为(至少不像android按钮的行为)。 如果我自己使用api来管理触觉反馈,将导致全局禁用此选项的用户体验到不良行为 谢谢
如何在回收者视图中收听触摸事件?我已经为视图持有者实现了click listener,但它可以在整个视图上工作。我在每个视图支架中都有一个图像视图,当用户单击图像视图时,我需要执行一个操作。 当前视图持有者代码。
在中,
我已经被困在这个问题上几天了,真的需要一些帮助和理解如何用DiffUtil设置RecylerView(RV),似乎无论我尝试什么,我都无法让RV更新。我会浏览我所拥有的,希望有人能解释一下我做错了什么。 应用程序启动 创建视图模型, 然后在ViewModel中填充LiveDataList。 LayoutManager和ListAdapter应用于RV 为什么在LiveDataList中添加或删除一
我有一个滑动删除,它绘制了一个背景(很像收件箱应用程序),由ItemTouchHelper实现,方法是覆盖onChilDraw方法并在提供的画布上绘制一个矩形: 上面调用的删除方法位于适配器中: 背景画得很好,但是当调用notefyItemRemved时(根据调试器先生的说法),RecyclerView首先删除我漂亮的绿色背景,然后将两个相邻的项目推到一起。 我希望它在这样做的时候保持背景(就像收
我正在学习Android和目前的回收器视图,所以在这个例子中,我在单击播放按钮时播放特定的原始声音文件,然后在完成后释放它。我可以认真地使用一些关于最佳实践的指针,但是因为我有一些问题和疑问: 我有一个过渡状态的问题,所以如果我按播放非常快,我会得到一个IllegalStateException,可能是因为试图释放一个已经发布的播放器。 显然,我也应该在发布后nullify并在之前进行null检查