Android全屏不工作:姜饼

时间:2012-08-26 03:15:54

标签: android android-2.3-gingerbread

我正在尝试制作全屏活动,但它似乎不适用于GingerBread,这是我的代码

 @SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_eyes);
   if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH){
    ActionBar actionBar = getActionBar();
    actionBar.hide();

}

   if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.GINGERBREAD){
       requestWindowFeature(Window.FEATURE_NO_TITLE);
       getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
   }

在Gingerbread中仍有一个标题。

有谁知道如何解决这个问题?

5 个答案:

答案 0 :(得分:3)

首先,您应该在清单中将活动设置为全屏。 在所需的活动中,添加此代码

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

你的onCreate应该是这样的

if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.GINGERBREAD){
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

setContentView(R.layout.main);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH){
    ActionBar actionBar = getActionBar();
    actionBar.hide();

}

这可能会解决问题。

答案 1 :(得分:3)

请务必在致电requestWindowFeature

之前致电setContentView

尝试使用java进行全屏活动:

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

和Manifest

android:theme="@android:style/Theme.Translucent.NoTitleBar"

答案 2 :(得分:1)

必须在requestWindowFeature之前调用{p> super.onCreate。像这样:

@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {

    if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.GINGERBREAD){
        requestWindowFeature(Window.FEATURE_NO_TITLE);
    }

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_eyes);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH){
        ActionBar actionBar = getActionBar();
        actionBar.hide();
    }

    if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.GINGERBREAD){
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }
    // ...

如果这不起作用,请将getWindow().setFlags(...)来电移至顶部。

答案 3 :(得分:0)

除非您有理由不在清单中设置它,否则请在清单中将此属性添加到您的代码中:

<application
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
    .....
>

我相信你不需要onCreate()中的if-conditions代码。

答案 4 :(得分:0)

不只是android:theme ="@android:style/Theme.NoTitleBar.Fullscreen"隐藏了标题栏和通知区域吗?

等于:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
requestWindowFeature(Window.FEATURE_NO_TITLE);

我从https://github.com/pocorall/scaloid-apidemos/blob/master/src/main/java/com/example/android/apis/graphics/CameraPreview.java

了解到这一点