• 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,是升级后的样式

    样式不仅可以继承自己写的样式,继承别人写的样式,还可以继承系统写的样式,都是可以的

  • 相关阅读:
    防止跨域(jsonp详解)
    java-文件和I/O
    spring-AOP框架(基于AspectJ注解配置AOP)
    @RequestMapping、@Responsebody、@RequestBody和@PathVariable详解(转)
    spring-IOC容器(三)
    spring-IOC容器(二)
    spring-IOC容器(一)
    Spring4相关jar包介绍(转)
    Eclipse设置自动提示(转)
    java-环境安装及配置
  • 原文地址:https://www.cnblogs.com/android-deli/p/10097476.html
Copyright © 2020-2023  润新知