0

我想使用大约 30 次我已​​经使用过的材料抽屉。如果我将 materialDrawer builder 放在 OnCreate 方法中,一切都会正常工作。几秒钟后使用线程构建抽屉,CountDown 计时器会在状态栏中产生一个白色灰色空间。

我构建它的简单代码:

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

我的价值观-21 活动风格:

<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解决状态栏问题。但是现在 xml 底部有相同的空间。从协调器中删除它,导致状态栏上的问题,而不是底部布局中的问题。

4

1 回答 1

1

您不能在 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 http://static.javadoc.io/com.mikepenz/materialdrawer/5.3.1/com/mikepenz/materialdrawer/Drawer.html的 javadoc

于 2016-06-20T20:26:52.250 回答