2014-09-03 41 views
3

我試圖在Android佈局xml中繼承樣式。 現在它看起來像:如何在Android中佈局中繼承樣式

layout.xml:

<RelativeLayout 
    android:id="@id/btn" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:clickable="true" 
    style="@style/AppTheme.ButtonLayout"> 

    <TextView 
     android:id="@id/btn_text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     style="@style/AppTheme.ButtonLayout.TextView" /> 

</RelativeLayout> 

styles.xml:

<style name="AppTheme.ButtonLayout"> 
    <item name="android:textViewStyle">@style/AppTheme.ButtonLayout.TextView</item> 
</style> 

<style name="AppTheme.ButtonLayout.TextView" parent="android:Widget.Holo.Light.TextView"> 
    <item name="android:textColor">@android:color/white</item> 
</style> 

我想擺脫從TextView的style屬性,但它應該繼承外觀RelativeLayout的。可能嗎?

編輯:我希望這個TextView具有這樣的風格只有在RelativeLayout與@style/AppTheme.ButtonLayout風格。當它沒有這種風格的內部佈局時,它應該看起來像默認的Android TextView。

回答

2

你可以在以下繼承自style.xml例如Android的佈局XML風格..

AndroidManifest.xml中

<?xml version="1.0" encoding="utf-8"?> 
     <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.prj.name" 
     android:versionCode="1" 
     android:versionName="1.0" > 

    <uses-sdk 
    android:minSdkVersion="11" 
    android:targetSdkVersion="19" /> 

    <application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 

    <activity> </activity> 
    </application> 
</manifest> 

themes_apptheme.xml你可以調用來自父系的名稱申報名稱

<?xml version="1.0" encoding="utf-8"?> 
<!-- Generated with http://android-holo-colors.com --> 
<resources xmlns:android="http://schemas.android.com/apk/res/android"> 

<style name="AppTheme" parent="@style/_AppTheme" /> 

<style name="_AppTheme" parent="android:Theme.Holo.Light"> 

    <item name="android:textColorHighlight">#99ff6d00</item> 
     <item name="android:textViewStyle">@style/TextViewAppTheme</item> 
</style> 

styles_apptheme.xml //你想要什麼設計,你可以從繪製文件夾中調用與PNG格式

<style name="TextViewAppTheme" parent="android:Widget.Holo.Light.TextView"> 
    <item name="android:background">@drawable/apptheme_text_holo_light</item> 
</style> 

style.xml

<style name="Widget.Holo.Light.TextView" parent="Widget.TextView"> 
    <item name="android:textcolor"> .........</item> 
</style> 

<style name="Widget.TextView"> 
    <item name="android:textAppearance">?android:attr/textAppearanceMediumInverse</item> 
    <item name="android:gravity">center_vertical</item> 
</style> 
+0

謝謝,但你的做法是全球性的。當它在帶樣式集的RelativeLayout中時,我需要改變TextView的樣式。 – milus 2014-09-03 10:57:56

+0

2014-09-03 11:13:34