onclicklistener与LinearLayout的问题

dae*_*n54 5 android android-linearlayout

为了对图标和文本进行分组,我将它们组合在一个linearlayout中,并为线性布局实现了一个监听器.

<LinearLayout
        android:id="@+id/ll0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="fill_horizontal"
        android:orientation="vertical" >
        <ImageButton
            android:id="@+id/imageButton0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@null"
            android:src="@drawable/start" />
        <TextView
            android:id="@+id/textView0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Start"
            android:textAppearance="?android:attr/textAppearanceMedium" />
    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我已经实现了监听器,方法如下: -

l0 = (LinearLayout)findViewById(R.id.ll0);
l0.setOnClickListener(new View.OnClickListener() 
    {
        public void onClick(View v) 
        {
            //Some Code
        }
    });
Run Code Online (Sandbox Code Playgroud)

我面临的问题是我点击图标,听众似乎没有回应.当我单击textview和图标之间的空格时,监听器工作.我希望整个部分都是可点击的,而不是特定的点.

qui*_*int 6

我认为这ImageButton是一个可点击的视图,正在捕获点击,阻止LinearLayout接收点击事件.尝试添加android:clickable="false"到定义的XML ImageButton.

但是,更好的答案是使用复合drawable.请参阅如何使用复合drawable而不是包含ImageView和TextView的LinearLayout.基本上,你可以添加android:drawableTop="@drawable/start"到XML定义TextView和废除的LinearLayoutImageButton完全.然后你只需处理点击TextView.