【问题标题】:NavigationDrawer not working correctly with SupportLibrary revision 21NavigationDrawer 无法与 SupportLibrary 修订版 21 一起正常工作
【发布时间】:2015-01-27 12:53:54
【问题描述】:

我刚刚更新了我的 android SDK 以获得 android 5 更新。这些是我所做的步骤:

  • 更新了 android-SDK
  • 更新了 eclipse 插件
  • 更新了我的项目构建 target=21 和 targetSdkVersion=21

然后我运行我的应用程序(使用 compat-v7 库),发现导航抽屉似乎有问题。操作栏中的应用图标不见了,整体风格看起来不正确(见图2)。

所以我以"Creating a Navigation Drawer" 为例进行了以下测试:

下载了示例项目,更新了构建目标和 targetSdk,并将 android-support-v4.jar 替换为 Compat-v7 库(修订版 21)。 将 ActionBarDrawerToggle 导入从 android.support.v4... 更改为 import android.support.v7...

结果正确:

图一:

然后我尝试将 MainActivity 父类从 Activity 交换到 ActionBarActivity,将 getActionBar() 调用更改为 getSupportActionBar()getFragmentManager() 更改为 getSupportFragmentManager()

还将android:theme="@style/Theme.AppCompat" 主题添加到活动中

它可以工作,但缺少应用程序图标,并且选项菜单未显示为操作。请参阅下面的屏幕截图。

图二:

我该如何解决?

更新

附上代码:

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setIcon(R.drawable.ic_launcher);
getSupportActionBar().setDisplayShowHomeEnabled(true);

你会得到以下栏:

这很好,但我更喜欢紧凑版本,抽屉指示器/箭头没有图标填充(见下图)。我怎样才能实现它?

【问题讨论】:

  • 我遇到了同样的问题,工具栏会占用我的菜单选项并将它们放在溢出菜单中:/ 你找到解决方案了吗?

标签: java android


【解决方案1】:

这实际上是新材料设计范式的预期行为。根据Toolbar上的官方文档:

在现代 Android UI 中,开发人员应该更多地依赖工具栏的视觉上独特的配色方案,而不是他们的应用程序图标。不鼓励在 API 21 和更新版本的设备上使用应用程序图标加标题作为标准布局。

【讨论】:

    【解决方案2】:

    也许这会对你有所帮助:

    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setLogo(R.drawable.ic_launcher);
    getSupportActionBar().setDisplayUseLogoEnabled(true);
    

    更新: 您可以在这里找到第二个问题的答案:

    How to change Toolbar navigation icon and options menu margin

    【讨论】:

      【解决方案3】:

      这是按预期工作的,现在默认情况下不显示应用程序图标。您可以调用以下命令再次显示图标。

      ActionBar ab = getSupportActionBar();
      ab.setHomeButtonEnabled(true);
      

      【讨论】:

      【解决方案4】:

      切换到新的ActionBarActivity后,好像隐藏了Actionbar的home/Logo。 @style/Theme.AppCompat 默认没有 Logo。您可以使用 .setHomeButtonEnabled(true); 启用它

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-14
        • 2020-08-19
        • 2013-02-06
        • 2019-02-02
        相关资源
        最近更新 更多