微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从不调用LinearLayout的点击监听器

如何解决从不调用LinearLayout的点击监听器

| 试图让onclick侦听器在线性布局上工作,但从未调用过:(。已启用clickable和focsuable(两种模式),但仍无法使Click侦听器响应。平台详细信息:Android 3.0。
           <LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"
                android:id=\"@+id/menu_items_button\"
                android:layout_width=\"0dip\"
                android:layout_height=\"fill_parent\"
                android:layout_weight=\"1\"
                android:orientation=\"vertical\"
                android:gravity=\"center_horizontal\"
                android:paddingTop=\"@dimen/gen_margin_xsmall\"
                android:paddingBottom=\"@dimen/gen_margin_xsmall\"
                android:background=\"@drawable/rule_bg_menu_button\"
                android:clickable=\"true\"
              android:focusableInTouchMode=\"true\"
            >
                <ImageView
                    android:layout_width=\"wrap_content\"
                    android:layout_height=\"wrap_content\"
                    android:src=\"@drawable/menu_items\"
                    android:tag=\"image\"
                />

                <TextView
                    android:layout_width=\"wrap_content\"
                    android:layout_height=\"wrap_content\"
                    android:tag=\"text\"
                    android:text=\"@string/menu_items_icon_txt\"
                    style=\"@style/textdisplay.mediumLarge\"
                />

            </LinearLayout>
并在代码添加事件监听器
_itemsButton = (LinearLayout) menu.findViewById(R.id.menu_items_button);
final Intent itemsIntent = new Intent(this,ItemsActivity.class);
_itemsButton.setonClickListener(
            new View.OnClickListener() {    
                @Override
                public void onClick(View v) {
                    startActivity(itemsIntent); //Never called!
                }
            }
        );
我这样做而不使用“图像”按钮的原因是因为““按钮””的背景是基于状态的(渐变),但是图像也是基于状态的,以便在单击/聚焦时将两者结合在一起,我使用了一个其自身具有ImageView的linearlayout。有关clickListener为什么不能在linearLayout上工作的任何建议? 谢谢     

解决方法

单击是否转到ImageView而不是LinearLayout?尝试在便签区域中单击(如果有的话),或尝试将Click侦听器放在ImageView1上。     ,(将回答添加为新答案,以便可以使用PRE标签。) 简单的方法是在图像视图和文本视图上设置相同的单击侦听器。
View.OnClickListener activityLauncher = new View.OnClickListener() {... }
layout.setOnClickListener(activityLauncher);
imageView.setOnClickListener(activityLauncher);
textView.imageView.setOnClickListener(activityLauncher);
    ,
LinearLayout
的宽度设置为\“ 0dip \”,屏幕上什么也看不到。 如果宽度更改为\“ FULL_PARENT \”,则可以。请再次仔细检查您的代码。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。