My app能够使用ActionBar上的SearchView搜索项目(其他应用程序)。
该应用程序使用Google的支持库,它适用于API 9的所有Android版本。
在Lollipop上,当我点击搜索操作项以开始搜索时,我注意到左上角的向上/向后按钮变为白色,这对于这种情况是不好的,因为操作栏背景也是很白:
奇怪的是,它并不总是发生,而且我认为它不会发生在不是棒棒糖的Android版本上(在多个模拟器和设备上测试过)。
另一个奇怪的事情是导航抽屉图标似乎没问题,以及searchView内的X图标。
这是我所拥有的工具栏的XML:
<android.support.v7.widget.Toolbar
android:id="@+id/activity_app_list__toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize" />
&#34; colorPrimary&#34;设置为:#ffEFEFEF。
此外,该活动的主题父母是&#34; Theme.AppCompat.Light.NoActionBar&#34; ,因为我已将工具栏设置为actionBar。
如何解决此问题?
这个问题的原因是什么?为什么它在其他Android版本上运行良好?
答案 0 :(得分:17)
这似乎是一个已知问题:https://code.google.com/p/android/issues/detail?id=78346。
解决方法在这里:https://code.google.com/p/android/issues/detail?id=78346#c5,意思是:
<强>值-21 /的themes.xml:强>
<style name="MyTheme" parent="Theme.AppCompat">
<item name="homeAsUpIndicator">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>
</style>
就是这样。希望以后能解决。
为了自定义它,我假设我可以使用它,并使用“colorControlNormal”选择颜色
答案 1 :(得分:9)
我猜你的“app:collapseIcon”属性是你想要的吗?
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="@dimen/toolbarHeight"
app:collapseIcon="@drawable/collapseBackIcon" />
答案 2 :(得分:1)
如何解决此问题?
我为这个(和其他)问题创建了一个实用程序类。得到它:
https://gist.github.com/consp1racy/96958a1dedf5a99d4ca5
第1部分:在Activity.onCreate(Bundle)
中调用以下方法:
ToolbarUtils.fixToolbar(mToolbar);
第2部分:代码使用工具栏中的值android:colorControlNormal
&#34;主题&#34;你在布局中指定的。如果您使用支持库并仅定义colorControlNormal
,则需要在其后添加以下行:
<item name="android:colorControlNormal" tools:ignore="NewApi">?attr/colorControlNormal</item>
这个问题的原因是什么?
经过大量的思考和实验后,似乎箭头使用了原始的位图,它是白色的,没有任何着色,这是错误的。
注意:菜单溢出图标也会显示android:colorControlNormal
,所以它现在也会显示正确的颜色。
编辑:先决条件:
您的Toolbar
应具有与以下内容类似的属性
<!-- custom toolbar theme -->
<item name="theme">@style/ThemeOverlay.MyApp.ActionBar</item>
<!-- light popup menu theme, change this if you need to -->
<item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
<!-- app bar background color -->
<item name="android:background">@color/material_deep_orange_500</item>
然后工具栏主题应该看起来像这样
<!-- example uses dark app bar template, feel free to change it to light if you need to -->
<style name="ThemeOverlay.MyApp.ActionBar" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
<!-- this line defines title text color -->
<item name="android:textColorPrimary">@color/material_white_100</item>
<!-- this line defines subtitle text color -->
<item name="android:textColorSecondary">@color/material_white_70</item>
<!-- this line defines up/hamburger/overflow icons color -->
<item name="colorControlNormal">@color/material_black_54</item>
<!-- this line is necessary for proper coloring on lollipop - do not delete it -->
<item name="android:colorControlNormal" tools:ignore="NewApi">?attr/colorControlNormal</item>
</style>