对 API21 及更高版本使用 Theme.Material,并在 Activity 中与工具栏保持兼容性
Use Theme.Material for API21 and above and maintaining compatibility in an Activity with a Toolbar
我想对所有 API21 及更高版本的设备使用 Theme.Material,并保持与 API21 之前的设备的兼容性。我遵循 here 解释的指南并创建了 2 Style.xml。
API21及以上版本
<style name="AppTheme" parent="android:Theme.Material">
<item name="android:windowTranslucentStatus">true</item>
<item name="colorPrimary">@color/USMABlue</item>
<item name="colorPrimaryDark">@color/USMABlueDark</item>
<!-- Customize your theme here. -->
</style>
这一款适用于 API21 之前的设备
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/USMABlue</item>
<item name="colorPrimaryDark">@color/USMABlueDark</item>
<item name="colorAccent">@color/USMAAccent</item>
<!-- Customize your theme here. -->
</style>
我的问题是 class 我的 MainActivity 应该扩展什么。
要使用 API21 之前的设备,我的 MainActivity 扩展了 AppCompatActivity 但是对于 API21 及更高版本的设备,我知道我应该扩展 Activity(参见 )...
此外,如果我扩展 Activity 我该如何设置我的工具栏?我在 AppCompatActivity.
中使用 setSupportActionBar
使用 AppCompatActivity
您可以对所有设备使用相同的 class 和 相同的样式:
在values/styles.xml
<style name="Base.AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/USMABlue</item>
<item name="colorPrimaryDark">@color/USMABlueDark</item>
<item name="colorAccent">@color/USMAAccent</item>
<!-- Customize your theme here. -->
</style>
<style name="AppTheme" parent="Base.AppTheme">
</style>
只需在values-v21/styles.xml
中添加一些属性(不是必需的):
<style name="AppTheme" parent="Base.AppTheme">
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
我想对所有 API21 及更高版本的设备使用 Theme.Material,并保持与 API21 之前的设备的兼容性。我遵循 here 解释的指南并创建了 2 Style.xml。 API21及以上版本
<style name="AppTheme" parent="android:Theme.Material">
<item name="android:windowTranslucentStatus">true</item>
<item name="colorPrimary">@color/USMABlue</item>
<item name="colorPrimaryDark">@color/USMABlueDark</item>
<!-- Customize your theme here. -->
</style>
这一款适用于 API21 之前的设备
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/USMABlue</item>
<item name="colorPrimaryDark">@color/USMABlueDark</item>
<item name="colorAccent">@color/USMAAccent</item>
<!-- Customize your theme here. -->
</style>
我的问题是 class 我的 MainActivity 应该扩展什么。
要使用 API21 之前的设备,我的 MainActivity 扩展了 AppCompatActivity 但是对于 API21 及更高版本的设备,我知道我应该扩展 Activity(参见
此外,如果我扩展 Activity 我该如何设置我的工具栏?我在 AppCompatActivity.
中使用 setSupportActionBar使用 AppCompatActivity
您可以对所有设备使用相同的 class 和 相同的样式:
在values/styles.xml
<style name="Base.AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/USMABlue</item>
<item name="colorPrimaryDark">@color/USMABlueDark</item>
<item name="colorAccent">@color/USMAAccent</item>
<!-- Customize your theme here. -->
</style>
<style name="AppTheme" parent="Base.AppTheme">
</style>
只需在values-v21/styles.xml
中添加一些属性(不是必需的):
<style name="AppTheme" parent="Base.AppTheme">
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
</style>