自定义View 放在Dialog后点击事件无效

来源:互联网 发布:nba球员生涯数据 编辑:程序博客网 时间:2024/04/29 23:07

        今天在尝试做一个自定义布局的Dialog,遇到了不少的麻烦。

       第一个麻烦:在用AlertDialog 加载自定义的布局时,EditText获取焦点后无法弹出软键盘来进行输入,网上询问解决方法,还是没有答案,有提到的解决方法是调用系统服务的输入服务来打开软键盘,但实际操作时,虽然能打开,但是需要控制好延时,过早会被dialog覆盖,过迟用户体验很差。不过可以用Dialog来加载布局,就会出现这样的问题。
       第二个麻烦:在自定义的布局中加入了自己写的一个SplashButton 继承于View,在设置点击事件时,无论如何也无法响应。经过测试,应该不是dialog的问题,而是自己view的问题。问题就在于自己重写了onTouchEvent的方法,在返回时直接返回了true,换成return super.onTouchEvent(event)就可以完美的解决了。
       
onTouchEvent 返回 true 说明该 View 消耗了触摸事件,后续的触摸事件也由它来进行处理。返回 false 说明该 View 对触摸事件不感兴趣,事件继续传递下去
1 0
原创粉丝点击