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入手网址如下(得FQ):http://www.techrepublic.com/article/give-android-users-an-immersive-experience-by-using-kitkats-full-screen-decor-flags/

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

时间: 2024-11-05 20:33:35

android在全屏下第一次触摸屏幕没有触发事件的相关文章

android 软键盘在全屏下的布局计算问题

在非全屏模式下,将activity的windowSoftInputMode的属性设置为:adjustResize.同时在View的onSizeChanged(int w, int h, int oldw, int oldh)里可以得到变化后的尺寸,然后根据前后变化的结果来计算屏幕需要移动的距离. 但是在全屏模式下,即使将activity的windowSoftInputMode的属性设置为:adjustResize.在键盘显示时它未将Activity的Screen向上推动,所以你Activity的

Android adjustresize全屏无效问题

屏模式下,即使将activity的windowSoftInputMode的属性设置为:adjustResize,在键盘显示时它未将Activity的Screen向上推动,所以你Activity的view的根树的尺寸是没有变化的.在这种情况下,你也就无法得知键盘的尺寸,对根view的作相应的推移.全屏下的键盘无法Resize的问题从2.1就已经存在了,直到现在google还未给予解决.可通过下面类解决这个问题: public class AndroidBug5497Workaround { //

Android dialog 全屏

Android中让Dialog全屏: 一.在style中定义样式: <?xml version="1.0" encoding="utf-8"?> <resources> <style name="Transparent"> <item name="android:windowBackground">@color/transparent_background</item>

Android中全屏 及 去掉标题栏

Android中全屏 及 去掉标题栏 <去掉标题栏的方法> 第一种:入门的时候经常使用的一种方法 requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 注意这句一定要写在setContentView()方法的前面,不然会报错的 第二种:在AndroidManifest.xml文件中定义 <application android:icon="@drawable/icon" android:label="@s

Android中全屏或者取消标题栏

先介绍去掉标题栏的方法: 第一种:也一般入门的时候经常使用的一种方法 requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 注意这句一定要写在setContentView()方法的前面,不然会报错的 第二种:在AndroidManifest.xml文件中定义 <application android:icon="@drawable/icon" android:label="@string/app_name"

Android实现全屏显示的方法

我们都知道在Android中某些功能的实现往往有两种方法:一种是在xml文件中设置相应属性,另一种是用代码实现.同样Android实现全屏显示也可以通过这两种方法实现: 1.在AndroidManifest.xml的配置文件里面的<activity>标签添加属性: android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 2.在Activity的onCreate()方法中的super()和setContentVie

Xamarin Android Activity全屏

以MainActivity 为例,其他Activity是一样的 在 MainActivity 中设置Theme为@android:style/Theme.NoTitleBar.Fullscreen [Activity(Label = "@string/app_name", Theme = "@android:style/Theme.NoTitleBar.Fullscreen", MainLauncher = true)] 并且将 MainActivity 的父类从A

Android实现全屏的三种方式

一.通过代码 1 requestWindowFeature(Window.FEATURE_NO_TITLE);// 隐藏标题栏 2 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 3 WindowManager.LayoutParams.FLAG_FULLSCREEN);// 隐藏状态栏 注意:必须在setContentView之前执行,否则会报错. 另外这种全屏显示方式的缺点是,会有隐藏标题栏和隐藏状态栏的动画过

Android TV 全屏无标题

想要全部窗口全屏无标题,修改 res\values\styles.xml 可设置主题和样式 <resources> <!-- Base application theme, dependent on API level. This theme is replaced by AppBaseTheme from res/values-vXX/styles.xml on newer devices. --> <style name="AppBaseTheme"