zoukankan      html  css  js  c++  java
  • 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:这个方法不是针对多有的机型,有的自定义系统会有问题,比如华为

  • 相关阅读:
    文件上传漏洞全面渗透姿势总结
    注册frpc为windows服务,可在未登录用户时启动
    SpringIOC 容器注入方式
    如何交换 Integer 的值?
    分布式websocket服务器
    win10安装Hbase2.3.0
    hadoop常用的命令
    win10安装kafka 2.122.8.1
    win10激活码
    win10 flume source为spooldir,输出到hdfs
  • 原文地址:https://www.cnblogs.com/Haijunzhu/p/4056212.html
Copyright © 2011-2022 走看看