
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
移动端编程开发是目前的一个主流编程开发方向,今天我们就通过案例分析来简单了解一下,Android编程开发都有哪些注意事项。
在Android开发中,经常会遇到扩大某些按钮点击区域的场景,如某个页面关闭按钮比较小,为防止误触或点不到,需要扩大其点击区域。
常见的扩大点击区域的思路有三个:
1.修改布局。如增加按钮的内padding,或者外面嵌套一层Layout,并在外层Layout设置监听。
2.自定义事件处理。如在父布局中监听点击事件,并设置各组件的响应点击区域,在对应点击区域里时就转发到对应组件的点击。
3.使用Android官方提供的TouchDelegate设置点击事件。
注意:TouchDelegate在Android8.0及其以前有个bug,如果需要兼容低版本需要留意下,在通过delegate触发子View点击事件之后,父View自己监听的点击事件就永远无法被触发了,原因在于TouchDelegate中对点击事件转发的处理中(onTouchEvent)对MotionEvent.ACTION\_DOWN)有问题,不在点击范围内时,未对mDelegateTargeted变量重置为false,导致父view再也收不到点击事件,无法处理click等操作。
Android的View是树形结构的,View可能会重叠在一起,当点击的地方有多个View可以响应点击事件时,为了确定该让哪个View处理这次点击事件,就需要事件分发机制来帮忙。事件收集之后先传递给Activity,然后依次向下传递,大致如下:Activity->PhoneWindow->DecorView->ViewGroup->...->View。如果没有任何View消费掉事件,那么这个事件会按照反方向回传,终传回给Activity,如果后Activity也没有处理,本次事件才会被抛弃。这是一个非常的责任链模式。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。