zoukankan      html  css  js  c++  java
  • 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,是升级后的样式

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

  • 相关阅读:
    Vue 2.x windows环境下安装
    VSCODE官网下载缓慢或下载失败 解决办法
    angular cli 降级
    Win10 VS2019 设置 以管理员身份运行
    XSHELL 连接 阿里云ECS实例
    Chrome浏览器跨域设置
    DBeaver 执行 mysql 多条语句报错
    DBeaver 连接MySql 8.0 报错 Public Key Retrieval is not allowed
    DBeaver 连接MySql 8.0报错 Unable to load authentication plugin 'caching_sha2_password'
    Linux系统分区
  • 原文地址:https://www.cnblogs.com/android-deli/p/10097476.html
Copyright © 2011-2022 走看看