我的按钮在按下时使用两个 XML 文件进行一些花哨的颜色切换,但我对可绘制颜色有问题(不知道该怎么称呼它)......
这是一个按钮
<Button
android:background="@drawable/main_loginbtn"
android:textColor="@color/main_loginbtn"
android:id="@+id/button1"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:onClick="login"
android:text="Login" />
(我知道我不应该使用硬编码字符串,但我稍后会更改它:)
这是@drawable/main_loginbtn
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape android:shape="rectangle" >
<solid android:color="#FFFFFF"/>
<stroke android:width="2dp"
android:color="#00BFFF"/>
</shape>
</item>
<item>
<shape android:shape="rectangle" >
<solid android:color="#00BFFF"/>
<stroke android:width="2dp"
android:color="#FFFFFF"/>
</shape>
</item>
</selector>
最后,这是@color/main_loginbtn 文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="#00BFFF"/>
<item android:color="#FFFFFF"/>
</selector>
如果我删除对@color/main_loginbtn 的textColor 引用,它将解决问题并且文本将重新出现在按钮上(当然是黑色的)。所以我很确定问题出在可绘制的颜色上。
通常,我不会关心这一点,但是当按钮内没有文本时,由于 wrap_content,它会扰乱某些按钮的缩放。
谢谢你的时间!
更新
我尝试创建第二个随机颜色可绘制对象,并在 TextView 的 textColor 属性上对其进行了测试,结果出现了同样的问题……整个 TextView 文本消失了。
所以我认为这是选择器的问题?
哦,我在这个问题上也搞砸了:没有什么“消失”,而是我在 Eclipse 布局 UI 中看不到文本。当我在模拟器中运行它时,一切正常......