如何在工具栏中设置导航图标的选择器?

时间:2015-01-01 17:42:15

标签: android selector toolbar material-design

当我使用材料设计的工具栏时,我可以设置导航图标 mToolbar.setNavigationIcon(R.drawable.ic_arrow_back);

但是当图标被压缩时导航图标选择器的形状是圆形的,如何在工具栏中制作导航图标的方形选择器?如何禁用选择器上的波纹动画? 我的风格如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="AppThemeBase">
    <item name="android:statusBarColor">@android:color/transparent</item>
</style>

<style name="AppThemeBase" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/myPrimaryColor</item>
    <item name="colorPrimaryDark">@color/myPrimaryDarkColor</item>
    <item name="colorAccent">@color/myAccentColor</item>
    <item name="android:textColorPrimary">@color/myTextPrimaryColor</item>
    <item name="android:navigationBarColor">@color/myNavigationColor</item>
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>

    <item name="android:windowDrawsSystemBarBackgrounds">true</item>

    <item name="android:windowBackground">@color/myWindowBackground</item>
    <item name="android:windowContentTransitions">true</item>
</style>

<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
    <item name="spinBars">true</item>
    <item name="color">@android:color/white</item>
</style>

<style name="ToolBarStyle" parent="">
    <item name="android:elevation">@dimen/toolbar_elevation</item>
    <item name="android:transitionName">actionBar</item>
    <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
    <item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
</style>

</resources>

1 个答案:

答案 0 :(得分:3)

<item name="android:selectableItemBackground">@drawable/selector</item>
<item name="selectableItemBackground">@drawable/selector</item>

这是我所知道的唯一方式。请注意,这在深层次上起作用,并且可能会覆盖其他窗口小部件的背景,因此您可能希望对其进行测试。如果您这样做,请告诉我。

我使用了一段时间,试图在API上有一个圆形背景&lt; 21而不是正方形。您的目标应该更容易实现,因为方形背景选择器可以适用于整个应用程序(而圆形背景仅在图标上感觉良好)。 所以建议的代码可能对您的需求有利。