我有这个问题,我在平板电脑项目中使用Android的Holo主题 . 但是,我在屏幕上有一个带有白色背景的片段 . 我在这个片段上添加了一个 EditText
组件 . 我试图通过设置Holo.Light主题资源的背景来覆盖主题 . 但是,我的文本光标(克拉)仍然是白色的,因此在屏幕上看不见(我可以在edittext字段中隐约发现它...) .
有谁知道如何让EditText使用更暗的光标颜色?我已经尝试将EditText的样式设置为 "@android:style/Widget.Holo.Light.EditText"
而没有正面结果 .
15 回答
似乎所有的答案都围绕着灌木丛 .
在
EditText
中,使用属性:并将drawable
black_cursor.xml
添加到您的资源,如下所示:如果需要,这也是创建更多样化游标的方法 .
晚了,这是我的回答,
这适用于那些不想在父主题中更改
colorAccent
但想要更改EditText
属性的人!Example:
现在创建一个drawable(
edit_text_background
)为后台添加资源xml!您可以根据需要自定义!现在,您已在Activity主题中设置此样式 .
Example :
在您的活动中,您有一个主题,将此自定义
editText
主题设置为该主题 .我找到了答案:)
我将Theme的editText样式设置为:
然后我使用以下drawable来设置光标:
`
`
android:textCursorDrawable 是关键 .
在布局中
然后创建drawable xml:color_cursor
EditText属性上有一个白色光标 .
在最新的
Appcompact
v21中有一种更改光标颜色的新方法只需更改
colorAccent
样式,如下所示:然后在您的应用主题或活动上应用此样式 .
更新:这种方式仅适用于API 21
Update 2 :我不确定它可以工作的最小Android版本 .
经Android版测试:
对于需要动态设置
EditText
光标颜色的任何人,您将在下面找到两种方法来实现此目的 .首先,创建你的光标drawable:
将光标drawable资源id设置为您创建的drawable(https://github.com/android/platform_frameworks_base/blob/kitkat-release/core/java/android/widget/TextView.java#L562-564">source)) :
要仅更改默认光标drawable的颜色,可以使用以下方法:
然后创建drawalble xml:
color_cursor
它比这更容易 .
这适用于ICS及更高版本 . 我没有在其他版本中测试过它 .
在styles.xm中改变colorAccent的颜色,这很简单
editcolor.xml
android:textCursorDrawable="@drawable/editcolor"
在xml文件中设置
edittext
背景颜色的颜色代码唯一有效的答案应该是更改活动的主题:
<item name="colorAccent">#000000</item>
您不应该使用android:textCursorDrawable
来@null
因为这只涉及光标本身而不是光标下方的引脚如果要拖动光标 . 主题解决方案是最严重的解决方案 .哇我真的很晚才参加这个派对,但它已经开展了17天的活动我们需要考虑发布我们用于获得答案的Android版本,所以现在这个答案适用于Android 2.1及以上版本转到RES / VALUES / STYLES并在下面添加代码行,光标将为黑色
在RES / COLOR文件夹中需要这行代码
为什么这么晚发帖?对于许多头脑怪物Android来说,考虑某种形式的类别可能会很好!
对我来说,我修改了AppTheme和值colors.xml
这是colors.xml
我把android:textCursorDrawable属性取出到了我放在editText样式中的@null . 当我尝试使用它时,颜色不会改变 .
将
android:textCursorDrawable
属性设置为@null
应该导致使用android:textColor
作为光标颜色 .属性“textCursorDrawable”在API级别12及更高级别中可用
用这个
机器人:textCursorDrawable = “@色/白色”