<!-- 最右边删除按钮 -->
<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~