Android主题

Android主题有啥子用?Android主题是为App添加样式的,状态栏,操作栏,导航栏,其他的android小部件如 dialog,progressbar 在不同的主题下会给用户提供不同的视觉效果

Android主题从版本上来说分为三层,两个临界点

  • Android5.0
  • Android9.0

Android5.0之前的ActionBar称之为Appbar,我们可以为之设置标题,logo

  • 组件继承自 Activity
  • Theme使用 @android.style 下的及其扩展
  • 代码使用 getActionbar()

android5.0之后,Google引入了Appcompat支持库,为什么叫支持库,这就得说一个很专有名词叫向后兼容,比如我们基于5.0平台进行的开发,用到了新的主题,当然在5.0的平台上运行没有问题,但是要想在4.0 3.0 的android平台上就不行了,因为低于5.0的平台没有那些东西呀,所以要呈现和5.0一样的效果使用google提供的支持库即可

  • 组件继承自 AppCompatActivity
  • Theme使用 @style/Theme.Appcompat 下的及其扩展
  • 代码使用 getSupportActionbar()
  • 后面又相继引入了 v4 v7 v8 v13 v14 v17,其实都是对支持库的扩充
    • v4
      /********在支持库 24.2.0 之前,只有一个 v4 支持库,很大,包含了所有模块**************/
      implementation 'com.android.support:appcompat-v4:24.2.0'
      /********也可以引用v4中的单个模块**************/
      implementation 'com.android.support:support-compat:28.0.0'
      implementation 'com.android.support:support-core-utils:28.0.0'
      implementation 'com.android.support:multidex:1.0.0'
      ...
      
    • v7
      implementation 'com.android.support:appcompat-v7:28.0.0'//依赖于v4
      implementation 'com.android.support:cardview-v7:28.0.0'
      implementation 'com.android.support:recyclerview-v7:28.0.0'
      ...
      

Android9.0 Google推出了AndroidX AndroidX也是对支持库的扩充和规范,规范!!!28.0.0版本是支持库的最后一个版本,之后google只维护AndroidX

  • 组件继承自 AppCompatActivity
  • Theme使用 @style/Theme.MaterialComponents 下的及其扩展
  • 代码使用 getSupportActionbar()
  • 迁移到AndroidX
在gradle.properties下添加
android.useAndroidX=true
android.enableJetifier=true
  • 依赖库会使用AndroidX开头
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
...

gradle -q dependencies your-app-project:dependencies

posted @ 2022-09-16 14:32  呢哇哦比较  阅读(208)  评论(0)    收藏  举报