我的应用程序中有一个垂直的LinearLayout,其中每一行都应该得到一个更复杂的子视图,其中包含一个图像和两行文本。现在我想让完整的行可单击以启动其他操作。这意味着整个事情应该对点击做出反应:基本视图包含其他元素,图像甚至两行文本。
我的问题:对此最好的方法是什么?我不能在整行中使用简单的按钮,据我所知,我无法为视图/图像/标签设置onClick-Handler?
知道如何做到这一点?
谢谢!
答案 0 :(得分:1)
您只需要在xml中将可点击标签true添加到主视图中,例如relativelayout或linearlayout。 这将有效
答案 1 :(得分:1)
最简单的选择是将android:descendantFocusability="blocksDescendants"
放在父视图上,这将阻止任何子视图从父视图中获取点击,然后仅在父视图上放置一个点击侦听器。
这假设您不关心用户在父级中单击的子视图。
<LinearLayout
android:id="@+id/parent"
...
android:clickable="true"
android:descendantFocusability="blocksDescendants" >
<TextView
... />
<ImageButton
... />
</LinearLayout>
并在代码中:
LinearLayout parent = (LinearLayout) findViewById(R.id.parent);
parent.setOnClickListener(...);