android 中具有操作菜单的工具栏上的波纹效果
Ripple effect on toolbar which has action menu in android
我不确定这是只发生在我身上还是发生在其他人身上,这是正在发生的事情:
我设置了menu.xml哪四个图标
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.ylg.default.Home">
<item
android:id="@+id/action_key"
android:icon="@drawable/key"
android:orderInCategory="9999999"
android:title="@string/lock"
app:showAsAction="always" />
<item
android:id="@+id/action_alert"
android:icon="@drawable/bell"
android:orderInCategory="9999999"
android:title="@string/alert_action"
app:showAsAction="always" />
<item
android:id="@+id/action_home"
android:icon="@drawable/home_tool"
android:orderInCategory="9999999"
android:title="@string/office"
app:showAsAction="always" />
<item
android:id="@+id/action_logo"
android:icon="@drawable/rupees"
android:orderInCategory="9999999"
android:title="@string/home"
app:showAsAction="always" />
</menu>
图标在我的 Nexus 5 上正确显示并带有涟漪效应,但问题是标题被剪切了,因此我更改了我样式中图标(右和左)的填充值,使用:
<style name="Theme.default" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:actionButtonStyle">@style/MyActionButtonStyle</item>
</style>
<style name="MyActionButtonStyle" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:minWidth">40dp</item>
<item name="android:paddingLeft">2dp</item>
<item name="android:paddingRight">2dp</item>
</style>
如果我放这个,菜单图标会缩小彼此之间的间距,但当我触摸图标时,不会看到波纹效果。
我不确定为什么会这样?有人可以帮我解决这个问题吗?
谢谢!
您用于 MyActionButtonStyle
的 parent 没有合适的背景。 parent 应该是 Widget.AppCompat.Light.ActionButton
。
<style name="MyActionButtonStyle" parent="Widget.AppCompat.Light.ActionButton">
但无论如何,减少菜单项之间的 space 并不是一个好主意。相反,使用
app:showAsAction="ifRoom"
所以不适合的项目将被放入溢出。这是必要的,因为 Nexus 5 总是有一个更小的 dp 屏幕,导致标题被削减得更多。棉绒 should have warned you about this.
我不确定这是只发生在我身上还是发生在其他人身上,这是正在发生的事情:
我设置了menu.xml哪四个图标
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.ylg.default.Home">
<item
android:id="@+id/action_key"
android:icon="@drawable/key"
android:orderInCategory="9999999"
android:title="@string/lock"
app:showAsAction="always" />
<item
android:id="@+id/action_alert"
android:icon="@drawable/bell"
android:orderInCategory="9999999"
android:title="@string/alert_action"
app:showAsAction="always" />
<item
android:id="@+id/action_home"
android:icon="@drawable/home_tool"
android:orderInCategory="9999999"
android:title="@string/office"
app:showAsAction="always" />
<item
android:id="@+id/action_logo"
android:icon="@drawable/rupees"
android:orderInCategory="9999999"
android:title="@string/home"
app:showAsAction="always" />
</menu>
图标在我的 Nexus 5 上正确显示并带有涟漪效应,但问题是标题被剪切了,因此我更改了我样式中图标(右和左)的填充值,使用:
<style name="Theme.default" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:actionButtonStyle">@style/MyActionButtonStyle</item>
</style>
<style name="MyActionButtonStyle" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:minWidth">40dp</item>
<item name="android:paddingLeft">2dp</item>
<item name="android:paddingRight">2dp</item>
</style>
如果我放这个,菜单图标会缩小彼此之间的间距,但当我触摸图标时,不会看到波纹效果。
我不确定为什么会这样?有人可以帮我解决这个问题吗?
谢谢!
您用于 MyActionButtonStyle
的 parent 没有合适的背景。 parent 应该是 Widget.AppCompat.Light.ActionButton
。
<style name="MyActionButtonStyle" parent="Widget.AppCompat.Light.ActionButton">
但无论如何,减少菜单项之间的 space 并不是一个好主意。相反,使用
app:showAsAction="ifRoom"
所以不适合的项目将被放入溢出。这是必要的,因为 Nexus 5 总是有一个更小的 dp 屏幕,导致标题被削减得更多。棉绒 should have warned you about this.