【发布时间】:2013-09-09 19:07:37
【问题描述】:
我正在尝试更改 ICS+ 中 SearchView 小部件上闪烁光标的颜色。我尝试了以下方法:
- 将
<item name="android:textCursorDrawable">@null</item>添加到我的 主题 - 为我的主题添加 AutoCompleteTextViews 的样式并将该样式的 textCursorAttribute 设置为 @null
- 直接在 SearchView 上设置
android:textCursorDrawable="@null"
我在这里阅读了答案(Custom cursor color in SearchView),但是 searchAutoCompleteTextView 没有非 ABS 样式,所以无法尝试。我还寻找了一种 Java 方法来设置文本光标可绘制,但找不到一个 - 我正在用 Java 修改 SearchView 的其他方面,如果有可用的方法,我可以使用光标来做到这一点。
我已经对 SearchView 进行了相当广泛的自定义,但最后一项更改是让它看起来不正确 - 光标在白色背景上是白色的,因此不容易看到。我可以尝试其他任何想法吗?
【问题讨论】:
-
如果您深入研究 Android 源代码,您会发现
mCursorDrawableRes在 3-param 构造函数中只设置一次。不幸的是,这意味着没有简单的方法可以在运行时更改它。看起来您的选择可能仅限于使用反射,或将您的自定义SearchView移动到android.widget以访问包受保护的成员。 -
MH,感谢您的提示-我能够使用反射来获取 TextView 中的 mCursorDrawableRes 并将其更改为 0-这相当于将其设置为 @null 并且颜色正确显示-如果您将此作为答案发布,我会接受。
-
很高兴,尽管解决方案并不理想。
-
同意这并不理想 - SearchView 开箱即用是非常不可定制的。我必须通过使用 findViewById 和内部 ID 来更改其他组件,以从 SearchView 中获取组件。所以这在实践中是一个类似的修复。
标签: android searchview