如何在Android工具栏中单击菜单项以获得涟漪效应

时间:2019-01-26 17:03:51

标签: android

我要实现的目标:

  • 用户单击菜单项时的波纹效果(本机)
  • 目前还没有发生

XML中的工具栏

 <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:background="@color/colorPrimary"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:gravity="center"
            app:contentInsetStartWithNavigation="0dp"
            app:contentInsetLeft="0dp"
            app:contentInsetStart="0dp"
            app:theme="@style/ToolBarStyle">

        <com.caring2u.organizer.utils.fonts.CustomCaringTextView
                android:id="@+id/toolbar_title"
                style="@style/style_toolbar_textView" />

    </android.support.v7.widget.Toolbar>

菜单

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@+id/menuEventsTodayId"
          android:title="@string/menu_events_today" />

    <item android:id="@+id/menuUpcomingEventsId"
          android:title="@string/menu_upcoming_events" />

    <item android:id="@+id/menuSignOutId"
          android:title="@string/menu_sign_out" />

</menu>

在清单中

<activity android:name=".ui.activities.screen.ActEventsToday"
                  android:windowSoftInputMode="stateHidden"
                  android:screenOrientation="portrait"
                  android:theme="@style/AppTheme.NoActionBar"/>

样式

<style name="AppTheme.NoActionBar" parent="MyAppTheme">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowFullscreen">false</item>
    </style>


<style name="ToolBarStyle" parent="@style/ThemeOverlay.AppCompat.Light">
        <item name="android:textColorPrimary">@color/primaryTextColor</item>
        <item name="android:textColorSecondary">@color/primaryTextColor</item>
        <item name="actionMenuTextColor">@color/primaryTextColor</item>
        <item name="colorControlHighlight">@color/colorAccent</item>
        <item name="selectableItemBackground">?android:selectableItemBackground</item>
        <item name="android:colorControlHighlight">@color/ripple_material_dark</item>
    </style>

{编辑}

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:itemBackground">@android:color/white</item>
        <item name="actionMenuTextColor">@android:color/black</item>
        <item name="colorControlNormal">@color/very_light_pink</item>
        <item name="colorControlActivated">@color/warm_grey</item>
        <!-- ********************** Click effect ********************** -->
        <item name="colorControlHighlight">@color/warm_grey</item>
    </style>

2 个答案:

答案 0 :(得分:0)

使用@ color / ripple_material_dark时会收到此警告

  

@ color / ripple_material_dark资源在以下位置被标记为私有   com.google.android.material:更少的材料...(⌘F1)检查   info:不应引用私人资源;可能不是   存在于任何地方,即使它们在哪里,它们也可能消失而没有   通知。

但是我可以在手机(Android 8.0)上看到波纹效果...尝试设置其他颜色,例如@android:color / darker_gray而不是@ color / ripple_material_dark

答案 1 :(得分:0)

波纹效果将仅显示Android API> = 21。