引用资源时,使用@还是?的区别,例如在设置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中


@style/Widget.ProgressBar.Horizontal
Theme.Holo中为


 @style/Widget.Holo.ProgressBar.Horizontal
1、在styles.xml中定义style标签的parent的时候


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



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


   
   
     
   
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:属性"等同

更多相关文章

  1. android 布局属性
  2. Android布局属性一览表
  3. android布局属性详解分享
  4. Android控件属性手册
  5. RelativeLayout用到的一些重要的属性:
  6. linearlayout属性
  7. Android属性动画完全解析

随机推荐

  1. ArcGIS for Android示例解析之空间查询--
  2. 分享 Android(安卓)手机屏幕录制并制作成
  3. ionic APP生成配置
  4. android跨线程通信eventbus
  5. android与网络(中)socket的陷阱
  6. Android布局中的android:onClick=“...”
  7. Android消息机制学习
  8. Android--About Android(欢迎修改、补充)
  9. 《阿里巴巴Android开发手册》正式发布,献
  10. 创建Android虚拟模拟器