1

我是一名初学者 android 开发人员,我面临的问题之一是如何使我的应用程序全屏显示。我用过:

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

但它实际上只是删除了状态和操作栏,但它保留了导航栏。我尝试了各种不同的方法都没有成功,但我知道这是可能的,因为我有很多应用程序不显示像地铁冲浪者这样的导航栏。

哪种方法是正确的?

4

4 回答 4

1

将以下代码添加到您的活动中:

public class YourActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

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

        setContentView(R.layout.your_layout);
        ...
    }
}

ps:

将以下内容添加到您的onResume()方法中:

int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
              | View.SYSTEM_UI_FLAG_FULLSCREEN;

View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(uiOptions);

请注意,不可能在所有情况下都删除导航栏(请参阅文档:“它不会隐藏平板电脑上的系统栏”)。从 4.4 开始,您可以启用Immersive Mode。查看这篇与 Android 3.0 设备相关的帖子(“您无法在 Android 3.0 上隐藏系统栏。 ”)。

于 2014-09-20T19:58:33.167 回答
0
// Erase the title bar
requestWindowFeature(Window.FEATURE_NO_TITLE);
// Make it full Screen
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

requestWindowFeature(int windowConstVal) 是一种调用 Activity 的方法,并且您始终可以使用 Window 类中的常量,该类将各种附加功能应用于窗口。

getWindow().addFlags() 从当前活动中获取窗口引用并添加标志(更多功能)使用来自 windowManager 类的常量。

于 2014-09-20T19:59:33.837 回答
0

您可以创建一个 SurfaceView,但它是否有用取决于您想要做什么。如果您想制作游戏,它可能会很有用,但由于您可能想要使用按钮或标签之类的东西,您可以像其他答案中描述的那样隐藏它,或者使用它(因为它为您提供了一个 optionMenu )。

最后归结为你想做什么

于 2014-09-21T10:26:02.140 回答
0

在您的清单中,您添加了这一行,但您在已经存在的活动标签之间添加。

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

这应该可以工作,没有理由不这样做,我确信这一点,因为我最近使用了它。

于 2014-09-21T10:32:39.210 回答