使用独立工具栏时,项目的可选背景存在问题,本文后面的内容也不起作用:
http://blog.mohitkanwal.com/blog/2015/03/07/styling-material-toolbar-in-android/
检查下面屏幕截图中的常规工具栏,使用独立工具栏时,涟漪效果选择器已消失。
这是我的风格:
<style name="ToolbarTheme" parent="Widget.AppCompat.Toolbar">
<item name="actionMenuTextColor">@color/green</item>
<item name="drawerArrowStyle">@style/DrawerArrowToggle</item>
<item name="colorControlNormal">@color/white</item>
<item name="colorControlActivated">@color/white</item>
<item name="android:textColorPrimary">@color/white</item>
<item name="titleTextAppearance">@style/ActionBar.TitleText</item>
<item name="android:actionOverflowButtonStyle">@style/MoreActionButton</item>
<item name="actionButtonStyle">@style/Widget.AppCompat.ActionButton</item>
<item name="selectableItemBackground">?android:selectableItemBackground</item>
<item name="selectableItemBackgroundBorderless">?android:selectableItemBackground</item>
<item name="colorControlHighlight">@color/accentColor</item>
</style>
修改 在将问题与我的代码隔离后,我能够重现该问题,并且它似乎与新的支持设计库有关。以下是有问题的测试代码:
答案 0 :(得分:22)
这是使用android 5.1 genymotion模拟器完成的
我没有弄清楚你的问题,但我只是尝试创建一个与你相同的工具栏,但删除了一些我没有的样式
这是我的风格
<style name="ToolbarTheme"
parent="Widget.AppCompat.Toolbar">
<item name="actionMenuTextColor">#1bff3a</item>
<item name="colorControlNormal">#FFF</item>
<item name="colorControlActivated">#FFF</item>
<item name="android:textColorPrimary">#FFF</item>
<item name="actionButtonStyle">@style/Widget.AppCompat.ActionButton</item>
<item name="selectableItemBackground">?android:selectableItemBackground</item>
<item name="selectableItemBackgroundBorderless">?android:selectableItemBackground</item>
<item name="colorControlHighlight">@color/accentColor</item>
</style>
我的工具栏布局
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?colorPrimary"
app:theme="@style/ToolbarTheme"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
/>
我的菜单
<item
android:id="@+id/action_settings"
android:title="@string/action_settings"
android:icon="@drawable/abc_ic_clear_mtrl_alpha"
app:showAsAction="always"
/>
活动代码
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.inflateMenu(R.menu.menu_home);
结果的屏幕截图
修改强>
下载问题中提供的示例后,问题与独立工具栏或操作栏无关(两者都有相同的问题),使用AppBarLayout
时,问题似乎是Ripple
效果将在AppBarLayout
而不是所选菜单项的视图上绘制,我将录制解释它的视频。
视频: AppBarLayout with Toolbar Video
我会尝试为此找到解决方案。
答案 1 :(得分:5)
看起来涟漪效应仍然存在,但波纹颜色已经改变。我不确定你的问题是什么,但这就是我所看到的。
我建议你删除
<item name="colorControlHighlight">@color/accentColor</item>
从您的代码再次运行它。如果涟漪不显示(应该),请更改强调色。
答案 2 :(得分:5)
selectableItemBackground
的解决方法对我来说也不起作用。到目前为止我提出的最佳策略是将工具栏的背景设置为透明:
<android.support.v7.widget.Toolbar
...
android:background="@android:color/transparent"/>
这可以在展开/折叠/中间状态下启用涟漪效果(裁剪到Actionbar高度)。
答案 3 :(得分:1)
Chris Bane回答原始问题:
https://code.google.com/p/android/issues/detail?id=176431
这是因为默认情况下?attr / actionBarItemBackground是一个无界的RippleDrawable,这意味着它会投射/绘制到下一个父级。在这种情况下,这是您无法实际看到的CollapsingToolbarLayout。
从图书馆的角度来看,我们在这里做的不多。 &#39;解决方法&#39;是将actionBarItemBackground设置为无边框:
<style name="Theme.Toolbar.Collapsing" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
<item name="actionBarItemBackground">?attr/selectableItemBackground</item>
</style>
<Toolbar
...
android:theme="Theme.Toolbar.Collapsing" />
答案 4 :(得分:1)
这对我有用:
在styles.xml中定义自定义主题
<style name="MyAppbarTheme" parent="@style/ThemeOverlay.AppCompat.Light">
<item name="colorControlHighlight">@color/colorAccent</item>
</style>
然后在AppBarLayout或工具栏上应用此主题
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/MyAppbarTheme" >
答案 5 :(得分:0)
我项目的好例子:
android:id="@+id/..."
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="@dimen/..."
android:background="@drawable/button_ripple_circle_green"
android:theme="@style/SearchViewTheme"
android:visibility="visible"
app:elementColor="@color/white"
app:hintColor="@color/text_disabled_light"
app:leftIconMode="back"
app:leftSearchSpace="@dimen/..."
app:textColor="@color/white"
app:textSize="@dimen/..."
tools:visibility="visible" />
这是xml(android:background),其中是图标的涟漪效应&#34;搜索&#34; &安培; &#34;背面&#34;:
<item android:state_pressed="true">
<shape android:shape="oval">
<solid android:color="@color/icon_toolbar_pressed"/>
<corners android:radius="3dp"/>
</shape>
</item>
<item android:state_pressed="false">
<shape android:shape="oval">
<solid android:color="@color/primary"/>
<corners android:radius="3dp"/>
</shape>
</item>