【问题标题】:How to use theme to set navigationIcon for Toolbar with Appcompat21如何使用主题为带有 Appcompat21 的工具栏设置 navigationIcon
【发布时间】:2014-11-27 16:15:52
【问题描述】:

我正在尝试使用 Appcompat 21 将 navigationIcon 设置为在工具栏中显示后退箭头。文件夹 values-v21 中的我的 Themes.xml 如下所示:

<style name="AppTheme" parent="AppTheme.Base" />

<style name="AppTheme.Base" parent="Theme.AppCompat.NoActionBar">
    <item name="android:colorPrimary">@color/primary</item>
    <item name="android:colorPrimaryDark">@color/primary_dark</item>

    <item name="android:dropDownListViewStyle">@style/DropDownListViewStyle</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:navigationIcon">@drawable/abc_ic_ab_back_holo_light</item>
    <item name="android:navigationContentDescription">@string/navigation_content_description</item>

我收到错误:

error: Error: No resource found that matches the given name 
(at 'android:navigationIcon' with value '@drawable/abc_ic_ab_back_holo_light').

但是,如果我在可绘制对象上按 ctrl-B(goto 声明),它会显示它位于 Appcompat 库中。我是否需要将 Appcompat 中的 drawable 复制到我的本地 R drawable 文件夹中才能使用它,或者是否有某种方法可以让 Android Studio 了解它应该在编译时从那里获取它?

【问题讨论】:

  • 我无法使用主题来做到这一点,但至少到目前为止,一种解决方法是:setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true);

标签: android themes toolbar android-appcompat


【解决方案1】:

这样做:

<style name="AppTheme" parent="AppTheme.Base" >
</style>

 <style name="AppTheme.Base" parent="Theme.AppCompat.NoActionBar">
   <item name="android:colorPrimary">@color/primary</item>
   <item name="android:colorPrimaryDark">@color/primary_dark</item>
   <item name="android:dropDownListViewStyle">@style/DropDownListViewStyle</item>
   <item name="windowActionBar">false</item>
   <item name="android:windowNoTitle">true</item>

   <!-- Add below line to style arrow -->
   <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
 </style>

 <!-- Style arrow -->
 <style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
    <!-- this will set your arrow color -->
    <item name="color">@android:color/black</item>

    <!-- You can customize other stuff too -->
    <item name="spinBars">true</item>
    <item name="thickness">3dp</item>
    <item name="barSize">21dp</item>
    <item name="drawableSize">48dp</item>

 </style>     

它以这种方式为我工作。希望这会有所帮助...

【讨论】:

  • 这对主导航抽屉图标非常有效(3 行在按下时变成后退箭头),但它不适用于没有导航抽屉的片段上工具栏中的后退箭头。
  • 你说的是哪个后退箭头。请详细说明或为您的问题添加图片。谢谢。
  • 这是设置 homeAsUpIndicator 时出现的图标 - 工具栏左侧的后退箭头,可让您导航回上一页/片段
猜你喜欢
  • 2015-01-04
  • 1970-01-01
  • 2016-01-29
  • 1970-01-01
  • 2015-07-25
  • 2015-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多