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

标签 android selector toolbar material-design

当我使用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>

最佳答案

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

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

我用过它一段时间,试图在 API < 21 上使用圆形背景而不是方形背景。您的目标应该更容易实现,因为方形背景选择器对整个应用程序都有好处(而圆形背景仅在图标上感觉良好)。 因此建议的代码可能适合您的需求。

关于android - 如何设置工具栏中导航图标的选择器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27733081/

相关文章:

internet-explorer - 您如何为IE开发插件?

java - Android OpenGL ES 1.x 中绘制临时对象的最佳方式

android - 黑色方 block 的 GridView 是否会比白色方 block 的 GridView 更能影响性能?

jquery - $(this) 和 $ ("#id") 之间有什么区别?

ios - '#selector' 的参数未引用初始化程序或方法

android - 如何设置actionBar弹出背景?

android - Autocompletetextview 下拉列表包含 Android L 的 Artifact

Android:如何使用动态 TextView 为不同的屏幕尺寸设置不同的文本尺寸?

Android checkCallingOrSelfPermission 没有正确返回

swift - 通过 UITapGestureRecognizer 选择器向函数发送参数参数