我对我的小应用做了一些调整,以便更好地遵循材料设计指南。
我有一个搜索操作项,操作栏是蓝色的,但是当点击搜索操作项时,我几乎看不到插入符号(输入文本的位置)。
我想改变它,也许是白色(比如文字颜色)。
我已经尝试查看支持库的代码,搜索允许我自定义插入颜色的功能,但我找不到可行的解决方案。
我试图使用" searchViewStyle"作为主题的项目之一,并创造一种新的风格:
<style name="AppTheme.SearchViewStyle" parent="Widget.AppCompat.SearchView">
...
但我所发现的一切似乎都不适合这一点。
奇怪的是,当使用&#34; Theme.AppCompat.Light &#34;而不是&#34; Theme.AppCompat.Light.DarkActionBar &#34; ,插入符号的颜色已经改变(变为绿色)。
如何更改搜索操作项(AKA SearchView)的文本插入符的颜色?
编辑:我发现可以设置&#34; colorControlActivated&#34;对于工具栏,如:<style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="actionBarTheme">@style/AppTheme.ActionBarTheme</item>
....
<style name="AppTheme.ActionBarTheme" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<item name="colorControlActivated">#FFffffff</item>
</style>
似乎可以工作,但除了搜索项目的插入符号外,它是否会影响其他内容?如果是这样,哪些?是否有可能只影响插入符?
答案 0 :(得分:1)
根据官方设计指南,插入符号(API&gt; 21)应在android:colorControlActivated
(colorControlActivated
到support-v7
)中引用。正如您所发现它会自动着色。
colorControlActivated
。顾名思义,它将是:
等等。我无法回想起它所使用的所有地方,但是如果你设法只将它应用到工具栏上,它应该没有任何其他应用程序,而不是你放在Menu
中的小部件(例如SearchView) 。它可以(不确定)对上下文操作栏产生一些影响。
如果您想完全控制插入符,您也可以提供自己的drawable:
<item name="android:textCursorDrawable">@drawable/my_drawable</item>
这适用于API&gt; 12.