使整个卡片视图可点击

Making entire cardview clickable

我有一个卡片视图的回收视图,其中每个卡片视图都包含一个文本视图和一个列表视图。我希望整个 cardview 成为一个可点击的项目。目前,如果我点击它工作的 cardview 的 textview 部分,但点击列表部分什么都不做。列表视图似乎正在从父卡片视图中窃取焦点。

我认为您可以尝试在卡片视图中定义以下属性。我不确定它是否会起作用,我不知道为什么在某些情况下它为我解决了问题,而在其他情况下却没有...

android:descendantFocusability="blocksDescendants"

如果找不到更优雅的解决方案,请考虑一下:您可以尝试为 cardview 重写 onInterceptTouchEvent() 并使用 gesture detector 来监听动作上的点击事件被拦截。 Return true 如果检测到手势,则 MotionEvent 会被拦截并且不会传递给其子项,包括列表视图。

这样 cardview 可以在 listview 之前看到点击事件。