5

这两天我一直在寻找这个问题的答案,但我没有找到。

我正在尝试隐藏操作栏以正确显示图像,但是每当我隐藏/显示操作栏时,活动都会在底部显示一个空白。我知道这是因为窗口在隐藏/显示操作栏事件上调整大小,这也是 Android 的默认动画,但我需要更改该颜色(黑色)或不显示此空白区域。但是我该怎么做呢?

我尝试将活动背景设置为黑色,但仍然无法正常工作。

例如,今日美国应用程序在“图片中的一天”部分执行此操作

请提供任何帮助!

提前致谢。

4

3 回答 3

1

您是否尝试过将操作栏设置为覆盖内容区域而不是停留在内容区域之上?在您的 onCreate() 中,在调用 super.onCreate() 之后将其添加到顶部:

getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
于 2013-08-14T15:31:44.443 回答
0

这段代码对我很有用

// This snippet hides the system bars.
private void hideSystemUI() {
    // Set the IMMERSIVE flag.
    // Set the content to appear under the system bars so that the content
    // doesn't resize when the system bars hide and show.
    View decorView = getWindow().getDecorView();
    decorView.setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
                    | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
                    | View.SYSTEM_UI_FLAG_IMMERSIVE);
}

private void showSystemUI() {

    //make nav bar transparent
    Window window = getWindow();
    window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

    View decorView = window.getDecorView();
    decorView.setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_IMMERSIVE
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}
于 2015-03-27T13:00:11.703 回答
-3

没有必要按照卡拉库里的建议去做;隐藏操作栏中的所有菜单项,操作栏将消失。

于 2014-11-14T18:34:50.867 回答