android在全屏下第一次触摸屏幕没有触发事件

A、设置全屏的方法很多就不多说了,常见如下两种(记录用以备忘):

1、在Androidmanifest.xml文件中设定,如:

<activity android:name="com.yeertc.android.RoomActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:screenOrientation="landscape">

</activity>

2、在响应activity中oncreate里面做添加如下代码

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//一定要放在setContentView()之前

B、这样设置的全屏会导致如下问题:

当你在相应activity的组件中设置一些监听事件时,第一次触摸屏幕不会触发组件中的事件,这是个严重的bug。

产生bug的原因如下:

  第一次触摸屏幕的时候,无论有没有设置为全屏,系统都会将事件用于显示状态栏(在设置全屏的时候也有显示状态栏的动作只是没显示出来而已),而不会去触发我们的监听。

这应该是系统的bug。

补救办法

在相应的组件(View)中设置如下方法从

setSystemUiVisibility入手
网址如下(得翻墙):
http://www.techrepublic.com/article/give-android-users-an-immersive-experience-by-using-kitkats-full-screen-decor-flags/

NOTE:这个方法不是针对多有的机型,有的自定义系统会有问题,比如华为

转载于:https://www.cnblogs.com/Haijunzhu/p/4056212.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值