2014-10-09 101 views
1
中的文本

使用Android Studio。我試圖使用選擇器使按鈕中的文本從白色變爲深灰色。只有文字,而不是按鈕的背景。Android - 選擇器不適用於按鈕

這是我選擇的xml:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@android:color/darker_gray" android:state_pressed="true"></item> 
    <item android:drawable="@android:color/white" android:state_focused="true"></item> 
    <item android:drawable="@android:color/white" android:state_enabled="true" android:state_focused="false" android:state_pressed="false"></item> 
    <item android:drawable="@android:color/white" android:state_enabled="false"></item> 
</selector> 

這裏是我的按鈕的xml:

<Button 
    android:layout_width="match_parent" 
    android:layout_height="45dp" 
    android:text="Maps" 
    android:id="@+id/buttonMaps" 
    android:layout_above="@+id/buttonEmail" 
    android:layout_marginBottom="5dp" 
    android:layout_centerHorizontal="true" 
    android:textColor="@drawable/selector"  <------- **SELECTOR NOT WORKING** 
    android:background="#7f2f74a0"    <------- **but it does work if I stick it here** 
    android:textSize="20sp" /> 

在預覽面板中,我收到讀取渲染錯誤消息「無法配置解析器for /Users...src/main/res/drawable/selector.xml「

我已經嘗試了很多從SO的解決方案,並沒有任何工作,包括清理和重建項目。有趣的是,我很好奇,並將選擇器應用到按鈕的背景,它的工作原理 - 按鈕背景默認爲白色,按下時變爲灰色。

有人比我更聰明有解決方案嗎?

謝謝!

回答

4

將文本選擇器置於資源下而不是可繪製的資源文件夾下。

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:color="@android:color/darker_gray" android:state_pressed="true"></item> 
    <item android:color="@android:color/white" android:state_focused="true"></item> 
    <item android:color="@android:color/white" android:state_enabled="true" android:state_focused="false" android:state_pressed="false"></item> 
    <item android:color="@android:color/white" android:state_enabled="false"></item> 
</selector> 

而且使用它像,

<Button 
    android:layout_width="match_parent" 
    android:layout_height="45dp" 
    android:text="Maps" 
    android:id="@+id/buttonMaps" 
    android:layout_above="@+id/buttonEmail" 
    android:layout_marginBottom="5dp" 
    android:layout_centerHorizontal="true" 
    android:textColor="@color/selector" 
    android:textSize="20sp" /> 
+0

感謝響應。我試過這個,但它仍然不起作用。不過要清楚的是,我在「res」目錄中創建了一個名爲「color」的新文件夾。然後我將選擇器移動到新創建的「顏色」文件夾中。我接收到相同的錯誤響應。 – 2014-10-09 19:24:43

+0

更新了答案並立即開始工作。只需複製選擇器並將其替換爲我的 – 2014-10-09 19:34:15

+0

就行了!非常感謝你的幫助。我被這個難倒了好幾個小時。 – 2014-10-09 20:08:03

相關問題