我有一个ImageButton和一个TextView,它们被包含在一个LinearLayout中,代码如下:
<LinearLayout android:orientation="vertical"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_weight="20" android:gravity="center"
android:clickable="true" android:id="@+id/action_showhide">
<ImageButton android:id="@+id/test"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/ic_toggle_hide_states" android:background="@null"></ImageButton>
<TextView android:id="@+id/TextView01" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/txtHide"
android:textColor="@drawable/orange" android:textStyle="bold"></TextView>
</LinearLayout>
是由自定义的可绘制图形支持正常、聚焦和按下状态。我希望允许用户在LinearLayout的任何位置点击以触发OnClick事件。以下代码显示了OnClickListener的设置: final LinearLayout actionHide = (LinearLayout) findViewById(R.id.action_showhide);
actionHide.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d(AppAdvocate.TAG, "Event caught");
}
});
当用户在TextView上任意点击时,代码可以正常工作,但当用户在ImageButton上点击时,事件不会冒泡到LinearLayout。我没有为按钮定义onClickListner。我想要我的ImageButton的drawable更改,因此我不想将其设置为clickable=false。有没有一种方法可以使事件冒泡?