状态栏最初颜色错误,并略微推出屏幕布局

时间:2016-12-19 01:32:39

标签: android android-toolbar

我正在处理一个有几个不同阶段的活动。它的设计就像一个向导,因此它的一些部分是教程,就像隐藏工具栏和状态栏的页面一样。活动以隐藏工具栏开始。在每个片段中,我有onToolbarShown(ActionBar ab)(在基础片段onStart()方法中调用),我用它来编辑标题,如果后退按钮显示等,然后我调用{{1下面的方法:

showToolbar

public void showSystemUi(boolean show){ if(show){ KKDeviceUtil.showSystemUI(mRootLayout); }else { KKDeviceUtil.hideSystemUI(mRootLayout); } } @Override public void showToolbar(boolean show){ if(getSupportActionBar() != null){ showSystemUi(show); if(show) { mRootLayout.setFitsSystemWindows(true); getSupportActionBar().show(); }else{ getSupportActionBar().hide(); mRootLayout.setFitsSystemWindows(false); } } } 是由android here建议的库存展示/隐藏方法)

问题是,第一次显示工具栏时,状态栏的颜色错误,布局按状态栏的高度分流。如下所示:

problems

当我下次切换片段时,问题会清除:

wha?

如果我回到之前的片段,它看起来是正确的:

enter image description here

如果我从不隐藏工具栏/系统窗口,我就不会遇到这个问题。我原本以不同的顺序进行了一些操作,并认为重新安排它们可能有所帮助,但它似乎没有任何区别。我也尝试过调用showSystemUi,但这没有效果。我的setStatusBarColor中也有<item name="android:statusBarColor">@color/status_bar_color</item>这是我状态栏的正确颜色,而我的primaryDark与上面显示的屏幕截图(错误)颜色相同。

我似乎无法找到我在这里做错了什么,这是显示/隐藏我的工具栏/系统ui的正确方法,为什么这只发生在工具栏的第一次显示上?

(注意:很难从屏幕截图中看到,但在第一个屏幕截图中,“完成”按钮比第三个屏幕截图中的正确位置更接近底部)

1 个答案:

答案 0 :(得分:-1)

请看下面我已经向您展示了将在状态栏上反映颜色的演示风格。

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/side_bar_color</item>
    <item name="colorPrimaryDark">@color/side_bar_color</item>
    <item name="colorAccent">@color/side_bar_color</item>
</style>

“colorPrimaryDark”是状态栏中使用的颜色,您需要将此样式设置为您的应用程序或清单类中的活动