【转】 Android xml中 @和?区别,style和attr小结
引用资源时,使用@还是?的区别,例如在设置style的时候既可以使用@也可以使用?
style="?android:attr/progressBarStyleHorizontal"style="@android:style/Widget.ProgressBar.Horizontal"
使用@表示使用固定的style,而不会跟随Theme改变,这style可以在对应的style.xml中找到。
而?表示从Theme中查找引用的资源名,例如上面的progressBarStyleHorizontal,查看\platforms\Android-23\data\res\values\themes.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
【转】 Android xml中 @和?区别,style和attr小结相关推荐
- Android XML中引用自定义内部类view的四个why
今天碰到了在XML中应用以内部类形式定义的自定义view,结果遇到了一些坑.虽然通过看了一些前辈写的文章解决了这个问题,但是我看到的几篇都没有完整说清楚why,于是决定做这个总结. 使用自定义内部类v ...
- android xml 中include的用法,Android include使用
安卓中,布局include主要是重用布局作用,当一个界面配置较多情况下,采用include可以大大增强 其可读性. eg:主布局include一个layout01布局,layout01布局中incl ...
- android xml中设置水平虚线及竖直虚线
水平线背景 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android=" ...
- android xml中attribute,android – 我无法从我的XML资源中读取AttributeSet
问题是对解析器功能的误解.行后: XmlResourceParser parser = r.getXml(R.layout.testcameraoverlay); 解析器位于文档的开头,并且尚未读取任 ...
- Android开发之Theme、Style探索及源码浅析
1 背景 前段时间群里有伙伴问到了关于Android开发中Theme与Style的问题,当然,这类东西在网上随便一搜一大把模板,所以关于怎么用的问题我想这里也就不做太多的说明了,我们这里把重点放在理解 ...
- 字体系列 (三):Xml中的字体 font ttf
在本系列的上一篇文章中,我们对 Typeface 进行了深入的解析,还没有看过上一篇文章的朋友,建议先去阅读 Android字体系列 (二):Typeface完全解析.接下来我们看下 Google 推 ...
- Android xml里面product的值来自哪里以及怎么影响编译?
Android xml里面product的值来自哪里以及怎么影响编译? 前言 做过Android Settings及Android原生应用开发的小伙伴们应该都知道,在其xml文件里面有根据p ...
- Android xml资源文件中@、@android:type、@*、?、@+含义和区别
一.@代表引用资源 1.引用自定义资源.格式:@[package:]type/name android:text="@string/hello" 2.引用系统资源.格式:@andr ...
- Android 开发中Layout_Margin与padding的区别以及Layout_gravity与gravity的区别
Layout_Margin与padding的区别以及Layout_gravity与gravity的区别 平时开发中这几个属性是我们经常使用的几个属性,偶尔脑子一糊涂,就容易弄混这些属性,下面,我就仔细 ...
- fileoutputstream路径 android,Android编程中FileOutputStream与openFileOutput()的区别分析
本文实例分析了Android编程中FileOutputStream与openFileOutput()的区别.分享给大家供大家参考,具体如下: openFileOutput() 首先给大家介绍使用文件如 ...
最新文章
- 第十一天2017/04/25(1、二叉树)
- IDEA下maven项目Plugins和Dependencies红线
- cpu频率_AMD EPYC米兰处理器样品曝光:64核128线程的Zen 3芯,频率可达3.5GHz_游戏硬件CPU...
- 蓝桥杯2017初赛-分巧克力-二分
- 配置防火墙打开 80 端口
- 前端学习(3267):js中this的指向二
- 课堂练习-水帖之王(水王)
- android radiobutton底部导航,android中Fragment+RadioButton实现底部导航栏
- BZOJ_2243 [SDOI2011]染色 【树链剖分+线段树】
- android studio生成jks,Android Studio生成keystore签名文件步骤讲解
- 通州区机器人比赛活动总结_机器人社团活动课总结
- 用两个栈实现队列(Java)
- 三类医疗器械进销存软件-医药供应链系统
- 用学习逃避成长,听新知缓解焦虑
- ie浏览器java 脚本下载_用IE浏览器时不断出现Java活动脚本功能出错问题
- Python ------ return返回值等
- 【c++中内存拷贝函数(C++ memcpy)详解】
- 每晚定时重启IIS和数据库服务可节省服务器资源
- 【高效程序员系列】2、别做机器人——让工作自动化
- TCP的三次握手与四次挥手详解
热门文章
- vs code调试console程序报错--preLaunchTask“build”
- Not a git repository (or any of the parent directories): .git
- ajax hash缓存
- shell的EOF用法
- Android-将RGB彩色图转换为灰度图
- CentOS hgfs中没有共享文件夹
- 第十三章 Spring消息(待续)
- Python-flask中数据库连接池DBUtils
- 5. CopyOnWriteArrayList 的适用场景
- rabbitmq 用户管理