• 【转】 Android xml中 @和?区别,style和attr小结


    引用资源时,使用@还是?的区别,例如在设置style的时候既可以使用@也可以使用?

     style="?android:attr/progressBarStyleHorizontal"
     style="@android:style/Widget.ProgressBar.Horizontal"

    使用@表示使用固定的style,而不会跟随Theme改变,这style可以在对应的style.xml中找到。 
    而?表示从Theme中查找引用的资源名,例如上面的progressBarStyleHorizontal,查看platformsAndroid-23data esvalues hemes.xml文件,可以看到在不同的theme中,progressBarStyleHorizontal引用的style是不同的。如

    在Theme中

    <item name="progressBarStyleHorizontal">@style/Widget.ProgressBar.Horizontal</item>

    Theme.Holo中为

     <item name="progressBarStyleHorizontal">@style/Widget.Holo.ProgressBar.Horizontal</item>

    1、在styles.xml中定义style标签的parent的时候

    自带属性,以下使用方式等同

    <style name="AppThemeSdk1" parent="@android:style/Widget.ProgressBar.Horizontal">
        </style>
        <style name="AppThemeSdk2" parent="android:style/Widget.ProgressBar.Horizontal">
        </style>
        <!--studio 不提示 但不报错 可用-->
        <style name="AppThemeSdk3" parent="android:style/Widget.ProgressBar.Horizontal">
        </style>
         <!--studio 不提示 但不报错 可用-->
        <style name="AppThemeSdk4" parent="android:Widget.ProgressBar.Horizontal">
        </style>

    自定义属性,以下使用方式等同

       <style name="AppThemeCustom1" parent="Widget.AppCompat.ProgressBar.Horizontal">
        </style>
        <style name="AppThemeCustom2" parent="@style/Widget.AppCompat.ProgressBar.Horizontal">
        </style>
         <!--studio 不提示 但不报错 可用-->
        <style name="AppThemeCustom3" parent="style/Widget.AppCompat.ProgressBar.Horizontal">
        </style>

    2、style作为xml中定义的属性时候

    <!--自定义的-->
    @style/Widget.AppCompat.ProgressBar.Horizontal
    <!--系统自带的-->
    @android:style/Widget.ProgressBar.Horizontal

    3、? attr

    <!--系统自带的 ,以下使用方式等同-->
    "?android:属性"
    "?android:attr/属性"
    <!--自定义的  ,以下使用方式等同-->
    "?attr/属性"
    "?属性"

    另外: 
    当引用系统自带的style和attr时

    "@android:style/主题"和"@style/android:主题"等同
    
    "?android:attr/属性"和"?attr/android:属性"等同

    from:http://blog.csdn.net/RichieZhu/article/details/52490521

     
     
  • 相关阅读:
    PHP的资源类型
    windows 配置 apache的多个站点
    php 压缩数据存储
    php统计图类库JpGraph
    php之ThinkPHP的memcached类的修改
    linux 安装报错:pkg-config not found
    Mysql清空表(truncate)与删除表中数据(delete)的区别
    【MySQL】查看MySQL配置文件路径及相关配置
    phper
    http 同步异步请求
  • 原文地址:https://www.cnblogs.com/xuan52rock/p/6398631.html
Copyright © 2020-2023  润新知