隐藏/显示操作栏时如何不显示空白区域?

时间:2013-08-14 15:27:25

标签: android actionbarsherlock android-actionbar hide show

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

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

我尝试将活动背景设置为黑色,但仍然无效。

E.g。今日美国应用程序在“图片日”

部分进行

请帮助任何帮助!

提前致谢。

3 个答案:

答案 0 :(得分:0)

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

getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);

答案 1 :(得分: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);
}

答案 2 :(得分:-2)

没有必要做Karakuri建议的事情;隐藏操作栏中的所有菜单项,栏将消失。