2012-11-21 43 views
0

我有造型customview的問題。 我想在不同的佈局中使用不同的樣式。但我的風格不適用。CustomView造型

CustomView佈局:

<?xml version="1.0" encoding="utf-8"?> 
<merge xmlns:android="http://schemas.android.com/apk/res/android"  
     <ImageView 
        android:id="@+id/img"      
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content"/> 

     <TextView 
        android:id="@+id/txt"  
        android:layout_width="wrap_content" 
       android:layout_height="wrap_content"  
       android:layout_gravity="bottom|center_horizontal"    
</merge> 

在另一個佈局定義:

<com.buka.customviews.Bukaview 
     android:id="@+id/bukaId" 
     android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      style="@style/BukaStyle1"> 

styles.xml

<style name="BukaStyle1"> 
     <item name="android:textSize">10sp</item> 
</style> 

<style name="BukaStyle2"> 
     <item name="android:textSize">20sp</item> 
</style> 

由於

回答

0

您應該創建一個自定義屬性:
<attr name="BukaStyleTextSize" format="dimensions" />

然後在您的自定義視圖佈局TextView標籤,放:
android:textSize="?attr:BukaStyleTextSize"

最後,在你的樣式styles.xml地說:
<item name="BukaStyleTextSize>10sp</item>

+0

仍然不起作用。我認爲問題在於我在TextView上定義了BukaStyleTextSize,但是在BukaView上應用了樣式。有任何想法嗎? – Hoochwo

+0

我也這麼認爲。你能否將BukaView的屬性傳遞給java類中的TextView?爲什麼不使用帶有drawableLeft或drawableTop的TextView? – yDelouis

+0

其實我有更復雜的佈局,我需要設置像大小/顏色和其他許多參數TextView中。我無法從代碼中的attr中設置樣式。 – Hoochwo