为了对图标和文本进行分组,我将它们组合在一个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>
我已经实现了侦听器,方法如下: -
l0 = (LinearLayout)findViewById(R.id.ll0);
l0.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
//Some Code
}
});
我面临的问题是我点击图标,听众似乎没有回应。当我单击textview和图标之间的空格时,监听器工作。我希望整个部分都是可点击的,而不是特定的点。
答案 0 :(得分:6)
我认为ImageButton
是一个可点击的视图,正在捕获点击,阻止LinearLayout接收点击事件。尝试将android:clickable="false"
添加到定义ImageButton
。
然而,更好的答案是使用复合drawable。见How do I use a compound drawable instead of a LinearLayout that contains an ImageView and a TextView。基本上,您可以将android:drawableTop="@drawable/start"
添加到定义TextView
的XML中,并完全取消LinearLayout
和ImageButton
。然后,您只需处理TextView
上的点击。