工具栏上的涟漪效果在android

时间:2015-07-20 10:20:05

标签: android android-styles

我不确定如果这种情况只发生在我身上,甚至发生在其他人身上,这就是正在发生的事情:

我设置了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>

如果我把它放在一起,菜单图标会减少它们之间的间距,但是当我触摸图标时看不到涟漪效应。

我不确定为什么会这样?有谁可以帮我这个?

谢谢!

1 个答案:

答案 0 :(得分:1)

您用于MyActionButtonStyle的父母没有适当的背景。父母应为Widget.AppCompat.Light.ActionButton

<style name="MyActionButtonStyle" parent="Widget.AppCompat.Light.ActionButton">

但无论如何,减少菜单项之间的空间并不是一个好主意。相反,使用

app:showAsAction="ifRoom"

因此,不适合的项目将被溢出。这是必要的,因为总有一个较小的dp屏幕使得Nexus 5导致标题被剪切得更多。 lint should have warned you about this