android点击linearlayout没反应,从不调用LinearLayout的点击监听器

|

试图让onclick侦听器在线性布局上工作,但从未调用过:(。已启用clickable和focsuable(两种模式),但仍无法使Click侦听器响应。平台详细信息:Android 3.0。

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\"

>

android:layout_width=\"wrap_content\"

android:layout_height=\"wrap_content\"

android:src=\"@drawable/menu_items\"

android:tag=\"image\"

/>

android:layout_width=\"wrap_content\"

android:layout_height=\"wrap_content\"

android:tag=\"text\"

android:text=\"@string/menu_items_icon_txt\"

style=\"@style/textDisplay.mediumLarge\"

/>

并在代码中添加事件监听器

_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上工作的任何建议?

谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在给LinearLayout设置滑动监听时,可以使用View.OnTouchListener接口来实现。首先,需要将LinearLayout设置为可点击的,通过调用setClickable(true)方法实现。然后,使用setOnTouchListener方法为LinearLayout设置触摸监听事件。在触摸监听事件中,可以使用手势监听器GestureDetector来分析给定的触摸事件,并实现相应的滑动逻辑。最后,通过返回值来告诉系统是否已经处理了该触摸事件。以下是一个示例代码: ```java // 设置LinearLayout点击 linear.setClickable(true); // 设置触摸监听事件 linear.setOnTouchListener(new View.OnTouchListener() { @SuppressLint("ClickableViewAccessibility") @Override public boolean onTouch(View v, MotionEvent event) { // 手势监听器分析给定view的触摸事件 // 相当于由手势监听器来接管这个view的触摸事件 return detector.onTouchEvent(event); } }); ``` 在这个示例中,linear是指要设置滑动监听LinearLayout,detector是一个手势监听器的实例。通过这样的设置,你可以在LinearLayout上实现滑动监听。 #### 引用[.reference_title] - *1* *2* [18.2、Android --ViewPager2 基础学习--滑动效果](https://blog.csdn.net/u013059089/article/details/125812328)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Android中手势滑动监听简单实现](https://blog.csdn.net/csdnzouqi/article/details/106103537)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值