Android-Style樣式


說到Style樣式在,HTML+Javascript+CSS中,CSS就是樣式,樣式可以把很多通用到效果,統一為一個樣式,達到通用的目的,也可以讓代碼更加簡潔。

 

什么時候用Style樣式 ?

例如:Android APP中到標題欄都是一個風格的,這個時候就可以定義標題的樣式,所有的標題樣式風格就通用了,而且維護很方便,修改樣式文件,就全部都修改了

     總之:很多控件都有重復都風格的時候,就可以使用Style樣式的抽取;

 


 

實現這個效果:

 

不使用樣式,就會有很多重復代碼,不利於維護和管理,例如:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="140dp"
        android:layout_height="wrap_content"
        android:textColor="@android:color/black"
        android:textSize="22dp"
        android:background="@color/colorAccent"
        android:gravity="center"
        android:layout_marginTop="20dp"
        android:text="111"
        />

    <TextView
        android:layout_width="140dp"
        android:layout_height="wrap_content"
        android:textColor="@android:color/black"
        android:textSize="22dp"
        android:background="@color/colorAccent"
        android:gravity="center"
        android:layout_marginTop="20dp"
        android:text="222"
        />

    <TextView
        android:layout_width="140dp"
        android:layout_height="wrap_content"
        android:textColor="@android:color/black"
        android:textSize="22dp"
        android:background="@color/colorAccent"
        android:gravity="center"
        android:layout_marginTop="20dp"
        android:text="333"
        />


    <TextView
        android:layout_width="140dp"
        android:layout_height="wrap_content"
        android:textColor="@android:color/black"
        android:textSize="22dp"
        android:background="@color/colorAccent"
        android:gravity="center"
        android:layout_marginTop="20dp"
        android:text="444"
        />


</LinearLayout>

 

使用樣式的優點是,重復代碼被抽取,有利於維護:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        style="@style/MyTextView"
        android:text="111"
        />

    <TextView
        style="@style/MyTextView"
        android:text="222"
        />

    <TextView
        style="@style/MyTextView"
        android:text="333"
        />


    <TextView
        style="@style/MyTextView"
        android:text="444"
        />
    
</LinearLayout>

Styles.xml

<resources>

    <style name="MyTextView">
        
        <!--
            android:layout_width="140dp"
            android:layout_height="wrap_content"
            android:textColor="@android:color/black"
            android:textSize="22dp"
            android:background="@color/colorAccent"
            android:gravity="center"
            android:layout_marginTop="20dp"
        -->
        
        <item name="android:layout_width">140dp</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textColor">@android:color/black</item>
        <item name="android:textSize">22dp</item>
        <item name="android:background">@color/colorAccent</item>
        <item name="android:gravity">center</item>
        <item name="android:layout_marginTop">20dp</item>
        
    </style>
    
</resources>

 

使用樣式的優點是,重復代碼被抽取,有利於維護,樣式還有一個功能,是可以繼承:

最后一個TextView控件使用的樣式是:style="@style/MyTextView_update"

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        style="@style/MyTextView"
        android:text="111"
        />

    <TextView
        style="@style/MyTextView"
        android:text="222"
        />

    <TextView
        style="@style/MyTextView"
        android:text="333"
        />


    <TextView
        style="@style/MyTextView"
        android:text="444"
        />
    
    <TextView
        style="@style/MyTextView_update"
        android:text="555_update"
        />

</LinearLayout>

 

Styles.xml,升級操作 <style name="MyTextView_update" parent="MyTextView">

<resources>

    <style name="MyTextView">

        <item name="android:layout_width">140dp</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textColor">@android:color/black</item>
        <item name="android:textSize">22dp</item>
        <item name="android:background">@color/colorAccent</item>
        <item name="android:gravity">center</item>
        <item name="android:layout_marginTop">20dp</item>

    </style>
    
    <style name="MyTextView_update" parent="MyTextView">
        
        <item name="android:layout_marginLeft">20dp</item>
        
    </style>

</resources>

 

最后一個TextVIew距離左邊20dp,是升級后的樣式

 

樣式不僅可以繼承自己寫的樣式,繼承別人寫的樣式,還可以繼承系統寫的樣式,都是可以的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM