android onClickListener onLongClickListener事件冲突

<!-- 最右边删除按钮 -->
  <RelativeLayout
  	android:id="@+id/rly_cancel_app"
  	android:layout_width="wrap_content"
  	android:layout_height="wrap_content"
  	android:layout_alignParentRight="true"
  	android:layout_marginTop="10dip"
  	android:layout_marginLeft="5dip" >
  	<ImageView
  		android:id="@+id/iv_cancel_app"
  		android:layout_width="wrap_content"
  		android:layout_height="wrap_content" 
  		android:layout_alignParentRight="true"
  		android:layout_marginRight="8dip"/>
  	<TextView
  		android:id="@+id/tv_cancel_info"
  		android:layout_width="wrap_content"
  		android:layout_height="wrap_content"
  		android:text="@string/exitClientDialogCancel"
  		android:layout_below="@id/iv_cancel_app" 
  		android:layout_alignParentRight="true"
  		android:layout_marginRight="5dip"/>	
  </RelativeLayout>


今天做了一个小示例,给父组件设置setOnLongClickListener监听,给其中的子组件设置setOnClickListener监听,

碰到了问题就是子组件监听不到了长按键监听,而子组件可以.

在网上找了好多类似的帖子, 基本上都是说由于“焦点被抢夺”的原因, onClickListener onLongClickListener事件冲突的问题,

但做了好多修改测试,也单独的进行焦点设置,setFocusable,   requestFocus,   setFocusableInTouchMode..... 但效果都不理想,

最终经过多次测试发现时layout布局文件的问题, 就是上面红色标注的tag, 直接删掉就好了,目前还不具体知道什么原因, 囧。

 

同时,还需要注意的是在接收了onLongClick事件后,该返回值要返回为true, 这一点也很重要。

 

再一个就是在FrameLayout层中,有时候层的上下级关系也会影响到事件的响应,在遇到问题时,调整一下层的顺序有可能会有进展,

只少我是这样解决的O(∩_∩)O~

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值