请检查此xml
<FrameLayout android:id="@+id/LayoutTab"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_gravity="bottom" android:layout_marginBottom="-30dip">
<ImageView android:id="@+id/ImageMenu" android:background="@drawable/img_tab"
android:layout_height="wrap_content" android:layout_width="fill_parent"></ImageView>
<LinearLayout android:id="@+id/LinearLayout03"
android:layout_width="fill_parent" android:paddingLeft="5dip"
android:layout_height="wrap_content" android:layout_gravity="bottom">
<ImageButton android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/btnNegative"
android:background="@drawable/btn_minus_state" android:layout_margin="5dip"></ImageButton>
<ImageButton android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/btnPositive"
android:background="@drawable/btn_plus_state" android:layout_margin="5dip"></ImageButton>
<ImageButton android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/btnShare"
android:background="@drawable/btn_share_state" android:layout_margin="5dip"></ImageButton>
</LinearLayout>
</FrameLayout>
这里我将ImageView作为背景,并且顶部会有很少的图像按钮。现在我想实现eventListener(OnClickListener)到imageview&amp; imagebuttons。但是当我点击按钮时,该事件也会转到imageview(在后台)。如何处理这种情况?
编辑:OP在评论中发布代码
mnuTab = (ImageView) this.findViewById(R.id.ImageMenu);
btnmin = (ImageButton) this.findViewById(R.id.btnNegative);
btnplus = (ImageButton) this.findViewById(R.id.btnPositive);
btnShare = (ImageButton) this.findViewById(R.id.btnShare);
mnuTab.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// my functions
}
});
btnmin.setOnClickListener(new OnClickListener() {
public void onClick(View v) { }
});
btnplus.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// my functions
}
});
答案 0 :(得分:0)
也许你的ImageView
非常大,所以FrameLayout
它会完全模糊你的LinearLayout
,所以所有的事件都转到ImageView
?您可以尝试在UI编辑器中以可视方式检查Eclipse中的ImageView
和LinearLayout
边界。
我也不认为在你的情况下使用FrameLayout
是一个好主意,FrameLayout
通常用于使一个UI元素可见,而所有其他元素不可见,以提供一种不是的UI切换器这里的情况。您似乎可以删除FrameLayout
,将背景图片设置为LinearLayout
,然后处理ImageViews
处理程序中的所有内容。