2012-09-06 62 views
0

添加樣式我的風格我不能使用選擇

<resources xmlns:android="http://schemas.android.com/apk/res/android"> 

<style name="TextStyle" > 
     <item name="android:textSize">8sp</item> 
     <item name="android:textColor">#0A0A0A</item> 
     <item name="android:typeface">serif</item> 

</style> 

<style name="TextStylePressed" > 
     <item name="android:textSize">18sp</item> 
     <item name="android:textColor">#0A0A0A</item> 
     <item name="android:typeface">serif</item> 
     <item name="android:textStyle">bold</item> 
     <item name="android:background">#C2C2C2</item> 
</style> 

</resources> 

我用選擇arrow.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:drawable="@style/TextStylePressed" android:state_selected="true"/> 
    <item android:drawable="@style/TextStylePressed" android:state_pressed="true"/> 
    <item android:drawable="@style/TextStylePressed" android:state_focused="true"/> 
    <item android:drawable="@style/TextStyle" /> 

</selector> 

的問題是,我不明白 - 如果它的工作原理?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    style="@drawable/arrow"    // <---- Framed here 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/arrow" // <---- then here 
    android:orientation="vertical" > 

</LinearLayout> 

因此,所有嘗試後沒有任何反應

+1

你的文件是否真的名爲'Arrow.xml'(第一個字母的上部)? – hsz

+0

對不起,我犯了一個錯誤arrow.xml –

回答

1

AFAIK選擇只能定義選擇drawable而不是任何其他attribute。如果你檢查doc,它編譯爲StatelistDrawable,所以我相信它只能用於繪圖

+0

難以理解我做了什麼錯誤你的意思是說應該有「@ drawable/TextStylePressed 「? –

+0

是的,只有drawables工作的選擇器。所以你不能設置android:textColor或任何其他屬性通過選擇器 – nandeesh

+0

告訴我請創建一個LinearLayout android:background =「@ drawable/arrow」它的工作原理,但不工作爲什麼? –