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