Android EventListener

时间:2012-02-28 18:45:20

标签: android android-layout

请检查此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
    }
});

1 个答案:

答案 0 :(得分:0)

也许你的ImageView非常大,所以FrameLayout它会完全模糊你的LinearLayout,所以所有的事件都转到ImageView?您可以尝试在UI编辑器中以可视方式检查Eclipse中的ImageViewLinearLayout边界。 我也不认为在你的情况下使用FrameLayout是一个好主意,FrameLayout通常用于使一个UI元素可见,而所有其他元素不可见,以提供一种不是的UI切换器这里的情况。您似乎可以删除FrameLayout,将背景图片设置为LinearLayout,然后处理ImageViews处理程序中的所有内容。