【问题标题】:Android Fullscreen codes not workingAndroid全屏代码不起作用
【发布时间】:2017-04-26 18:42:39
【问题描述】:

我正在使用这些线来获得全屏,但电池和天线的栏仍然存在。

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(
        WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

我什至检查了How to get rid of top fading edge in android full screen mode? 中提到的一行 当我添加 (setTheme(android.R.style.Theme_NoTitleBar_Fullscreen);) 时,屏幕会上升,但有点像栏在我的屏幕顶部。 我自然认为操作系统(Android 4.0.4)不允许这样做,但有人说这段代码会强制它变成那样,但它不起作用,更准确的最终代码是这样的:

public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setTheme(android.R.style.Theme_NoTitleBar_Fullscreen);
        getWindow().setFlags(
                WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
        setListAdapter(new ArrayAdapter<String>(Menu.this,
                android.R.layout.simple_list_item_1, classes));
    }

你能帮帮我吗?

【问题讨论】:

    标签: java android eclipse


    【解决方案1】:

    全屏显示应用:

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
    

    要删除它,请使用:

    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    

    【讨论】:

    • 将您的 FLAG_FORCE_NOT_FULLSCREEN 更改为 FLAG_FULLSCREEN
    • 是的!收到。我犯了一个错误。 :) 我会投票给你,但我的名声不允许。
    • @yousefyegane 没问题,很高兴你把它整理好了;)
    【解决方案2】:

    你做的每件事都是正确的,代码很容易获得全屏

    requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        //if you want it too other vice first one is good enough
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
                WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    

    **

    注意请在setContentView前添加

    **

    【讨论】:

    • @ghosttalker 为什么将FLAG_KEEP_SCREEN_ON 放入代码中?和他的问题无关
    【解决方案3】:

    编辑:除了你有两次标志 FLAG_FORCE_NOT_FULLSCREEN 之外,似乎你什么都做对了

    首先,确保您的主题不包含操作栏。然后,在 onCreate 中添加以下内容:

    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    

    【讨论】:

    • 我在这里看到的每个代码中都有两次,来自其他人。我不知道为什么。
    • 一次是清除非全屏模式的标志。然后另一个是添加全屏模式标志。
    【解决方案4】:

    对于活动的全屏你应该在super.onCreate(savedInstanceState);之前使用下面的代码

             requestWindowFeature(Window.FEATURE_NO_TITLE);
             getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    

    或者如果您在应用程序中使用 Theme.AppCompat,您可以通过在 style.xml 中添加以下样式来使用 FullScreenTheme

    <style name="Theme.AppCompat.Light.NoActionBar.FullScreen" 
     parent="@style/Theme.AppCompat.Light">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
    </style>
    

    并在清单文件中提及

        <activity
          android:name=".activities.FullViewActivity"
          android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen" 
         />
    

    【讨论】:

      【解决方案5】:

      这就是你要找的东西:

      https://developer.android.com/training/system-ui/immersive.html

      另外,我附上一个相关的问题:

      Using new IMMERSIVE mode in android kitkat

      【讨论】:

      • 我正在使用 API 8。它似乎适用于 API 19
      猜你喜欢
      • 1970-01-01
      • 2012-06-01
      • 1970-01-01
      • 2017-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-26
      • 1970-01-01
      相关资源
      最近更新 更多