使用可点击的子元素创建整个视图

时间:2017-09-05 05:18:59

标签: java android user-interface

我的应用程序中有一个垂直的LinearLayout,其中每一行都应该得到一个更复杂的子视图,其中包含一个图像和两行文本。现在我想让完整的行可单击以启动其他操作。这意味着整个事情应该对点击做出反应:基本视图包含其他元素,图像甚至两行文本。

我的问题:对此最好的方法是什么?我不能在整行中使用简单的按钮,据我所知,我无法为视图/图像/标签设置onClick-Handler?

知道如何做到这一点?

谢谢!

2 个答案:

答案 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(...);