这是我第一次在这里发帖,所以我会尝试尽可能具体。
我正在构建一个Android应用程序,我遇到了隐藏状态栏的问题。让我说明一下。我正在使用ViewPager
允许用户在两个全屏页面之间滑动。每个页面都是唯一的Fragment
。一个有现场摄像头,另一个有列表。我想要做的是隐藏相机片段顶部的状态栏,并在进入列表时向下滑动。这是SnapChat从相机片段到非相机片段时所做的事情。他们如何实现它是最终目标。
我的minSdkVersion是17,所以我可以使用Google在this Android training site上提供的这个代码段:
View decorView = getWindow().getDecorView();
// Hide the status bar.
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
decorView.setSystemUiVisibility(uiOptions);
这在隐藏和(通过一些更改)显示状态栏方面非常有效。但是,这会引入另一个问题,即状态栏曾经出现过空白空格。 Image here
我无法弄清楚如何让它消失。我认为需要调整布局以一直延伸到顶部,但我无法弄明白。
所以,
来自我的PageChangeListener:
public void onPageSelected(int position)
{
if (fragments[position] instanceof CameraPreviewFragment)
{
hideStatusBar();
}
else
{
showStatusBar();
}
}
这两种方法:
public void hideStatusBar()
{
View decorView = getWindow().getDecorView();
// Hide the status bar.
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
decorView.setSystemUiVisibility(uiOptions);
}
public void showStatusBar()
{
View decorView = getWindow().getDecorView();
// Hide the status bar.
int uiOptions = View.SYSTEM_UI_FLAG_VISIBLE;
decorView.setSystemUiVisibility(uiOptions);
}
如果您需要更多代码或视图,我会编辑帖子以包含它们。欣赏它!