fitSystemWindows 与 MaterialDrawer

fitSystemWindows with MaterialDrawer

我想使用 material 抽屉大约 30 次我已​​经用过它了。 如果我将 materialDrawer builder 放在 OnCreate 方法中,一切都很好。几秒钟后使用线程构建抽屉,CountDown 计时器在状态栏中生成白色灰色 space。

我构建它的简单代码:

result = new DrawerBuilder(this)
            .withActivity(this)
            .withToolbar(toolbar)
            .withActionBarDrawerToggle(true)
            .addDrawerItems(

我的价值观-21 Activity 风格:

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
</style>

我的 activity_main.xml:在 fitSystemWindows="true" 观看。在 CoordinatorLayout 中使用此属性解决状态栏问题。但是相同的 space 现在位于 xml 的底部。从协调器中删除它,导致状态栏上的问题,而不是底部布局中的问题。

您不得在 Android 中的非 UI 线程上进行 UI 操作。您可以在这里阅读更多相关内容: https://developer.android.com/training/multiple-threads/communicate-ui.html

一般来说,如果将代码放在处理程序中以便在主线程上执行,应该会有所帮助:

new Handler().postDelayed(new Runnable() {
  @Override
  public void run() {
     //your code
  }
}, 1);

但实际上我建议您在 onCreate 方法中创建抽屉。如果您在这个地方还没有关于这些项目的信息,您也可以稍后使用 Drawer 对象添加它们。您可以在此处找到有关如何在构建后修改抽屉的示例:https://github.com/mikepenz/MaterialDrawer#modify-items-or-the-drawer

您可能还想查看 Drawer 的 javadoc http://static.javadoc.io/com.mikepenz/materialdrawer/5.3.1/com/mikepenz/materialdrawer/Drawer.html