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' ...
- v4
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

浙公网安备 33010602011771号