如何自定义 expanded-search-action-item 插入符号的颜色?
How to customize the color of the caret of the expanded-search-action-item?
背景
我对我的小应用程序做了一些调整,以便它更好地遵循 material 设计指南。
问题
我有一个搜索操作项,操作栏是蓝色的,但是单击搜索操作项时,我几乎看不到插入符号(输入文本的位置)。
我想改成白色(比如文字颜色)。
我试过的
我已经尝试查看支持库的代码,搜索允许我自定义插入符号颜色的函数,但我找不到可行的解决方案。
我尝试使用 "searchViewStyle" 作为主题的项目之一,并创建了一个新样式:
<style name="AppTheme.SearchViewStyle" parent="Widget.AppCompat.SearchView">
...
但是我发现 none 似乎适合这个。
奇怪的是,当使用“Theme.AppCompat.Light”而不是“Theme.AppCompat.Light.DarkActionBar”时,插入符号的颜色已更改(变为绿色)。
问题
如何更改搜索操作项(又名 SearchView)的文本插入符号的颜色?
编辑:我发现可以为工具栏设置 "colorControlActivated",例如:
<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>
似乎有效,但它会影响除搜索项的插入符号以外的其他内容吗?如果有,是哪些?是否可以只影响插入符号?
根据官方设计指南,插入符应使用 android:colorControlActivated
中的引用(colorControlActivated
至 support-v7
)着色 (API>21)。正如您所发现的那样,它会自动着色。
colorControlActivated
在几个小部件中默认使用。顾名思义,它将是以下颜色:
- 一个激活的复选框;
- 聚焦的 EditText;
- 选定的单选按钮;
等等。我不记得它用过的所有地方,但如果你设法只将它应用到工具栏,那么除了你放在 Menu
中的小部件(例如 SearchView)之外,它不应该有任何其他应用程序.它可能(不确定)对上下文操作栏有一些影响。
如果您想完全控制插入符号,您还可以提供自己的可绘制对象:
<item name="android:textCursorDrawable">@drawable/my_drawable</item>
这适用于 API>12。
背景
我对我的小应用程序做了一些调整,以便它更好地遵循 material 设计指南。
问题
我有一个搜索操作项,操作栏是蓝色的,但是单击搜索操作项时,我几乎看不到插入符号(输入文本的位置)。
我想改成白色(比如文字颜色)。
我试过的
我已经尝试查看支持库的代码,搜索允许我自定义插入符号颜色的函数,但我找不到可行的解决方案。
我尝试使用 "searchViewStyle" 作为主题的项目之一,并创建了一个新样式:
<style name="AppTheme.SearchViewStyle" parent="Widget.AppCompat.SearchView">
...
但是我发现 none 似乎适合这个。
奇怪的是,当使用“Theme.AppCompat.Light”而不是“Theme.AppCompat.Light.DarkActionBar”时,插入符号的颜色已更改(变为绿色)。
问题
如何更改搜索操作项(又名 SearchView)的文本插入符号的颜色?
编辑:我发现可以为工具栏设置 "colorControlActivated",例如:
<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>
似乎有效,但它会影响除搜索项的插入符号以外的其他内容吗?如果有,是哪些?是否可以只影响插入符号?
根据官方设计指南,插入符应使用 android:colorControlActivated
中的引用(colorControlActivated
至 support-v7
)着色 (API>21)。正如您所发现的那样,它会自动着色。
colorControlActivated
在几个小部件中默认使用。顾名思义,它将是以下颜色:
- 一个激活的复选框;
- 聚焦的 EditText;
- 选定的单选按钮;
等等。我不记得它用过的所有地方,但如果你设法只将它应用到工具栏,那么除了你放在 Menu
中的小部件(例如 SearchView)之外,它不应该有任何其他应用程序.它可能(不确定)对上下文操作栏有一些影响。
如果您想完全控制插入符号,您还可以提供自己的可绘制对象:
<item name="android:textCursorDrawable">@drawable/my_drawable</item>
这适用于 API>12。