2014-10-16 51 views
1

sI有一個自定義的android視圖。它有一個自定義屬性:在Android中定製xml屬性的間接引用(別名)

<com.my.CustomView 
     custom:attribute="value_1" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" /> 

custom:attribute是一個標誌,定義爲:

<resources> 
     <attr name="attribute"> 
      <flag name="value_1" value="8"/> 
      <flag name="value_2" value="9"/> 
     </attr> 

     <declare-styleable name="CustomView"> 
      <attr name="lobby_orientation"/> 
     </declare-styleable> 

    </resources> 

我想要做的就是修改每配置此值。例如,縱向應該是value_1,橫向應該是value_2。爲此,我會創造價值端口和價值,土地的文件和其他文件:

<resources> 
     <what_to_write name="here">value_1</what_to_write> 
    </resources> 

所以佈局可能是這樣的:

<com.my.CustomView 
     custom:attribute="@what_to_write/here" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" /> 

這是可行的辦法android系統中?

回答

0

看來(根據http://developer.android.com/guide/topics/resources/providing-resources.html頁面),只有簡單的值(以及佈局和可繪製)可以具有別名。我找到的方法是將值放入樣式中,並且可以根據配置定義樣式文件。

<resources> 
     <style name="CustomViewStyle"> 
      <item name="what_to_write">value_1</item> 
     </style> 
    </resources> 

    <com.my.CustomView 
     style="CustomViewStyle" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" />