设置文本颜色后,按钮文本消失

时间:2013-11-03 22:18:29

标签: android

我的按钮使用两个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>

如果我将textColor引用移除到@ color / main_loginbtn,它将解决问题并且文本将重新出现在按钮上(当然是黑色)。所以我很确定问题在于颜色可绘制。

通常情况下,我不会关心这一点,但是由于wrap_content,当按钮内没有文字时,它会使某些按钮缩小。

谢谢你的时间!


更新

我尝试创建第二个随机颜色drawable,并在TextView的textColor属性上测试它,同样的问题出现了......整个TextView文本消失了。

所以我认为这是选择器的问题?

哦,我也搞砸了这个问题:每个人说什么都没有“消失”,而是在eclipse布局UI中看不到文字。当我在模拟器中运行它时,一切正常......

1 个答案:

答案 0 :(得分:1)

您需要设置颜色的透明度。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="#FF00BFFF"/>
    <item android:color="#FFFFFFFF"/>
</selector>

UI编辑器假设您的颜色是透明的(换句话说,如果您没有设置它,则默认为alpha = 00)。