说到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,是升级后的样式
样式不仅可以继承自己写的样式,继承别人写的样式,还可以继承系统写的样式,都是可以的