我是否也需要为 V21 样式使用 Theme.AppCompat 主题(或后代)?
Do I need to use a Theme.AppCompat theme (or descendant) for V21 styles too?
在使用 Material Design 主题时,我的 values-v21 文件夹是否应该包含对 Theme.Appcompat 的引用?
我的 API 最小值是 9,我的目标 API 是 21.
我有以下内容:
AndroidManifest.xml
<application
...
android:theme="@style/AppTheme">
values\styles.xml
<resources>
<style name="AppBaseTheme" parent="Theme.AppCompat.NoActionBar">
</style>
<style name="AppTheme" parent="AppBaseTheme">
</style>
</resources>
values-v21\styles.xml
<resources>
<style name="AppBaseTheme" parent="android:Theme.Material.Light">
</style>
</resources>
但是我明白了
...You need to use a Theme.AppCompat theme (or descendant) with this activity.
并且我已经将 Activity
扩展为 ActionBarActivity
我主要关注了下面的视频http://youtu.be/h57QpXp2TRg
您可以使用此代码区分 API 个版本
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
// Do something for Lollipop and above versions
} else{
// do something for phones running an SDK before Lollipop
}
如果您在没有 Appcompat 的情况下为 API 21 创建单独的布局,您将不需要参考。
否则您仍将使用需要使用 Theme.Appcompat
的 Appcompat
它在我观看的视频中起作用,因为讲师使用的不是棒棒糖模拟器,而是较低版本。该系列的下一个视频解释了这个问题。 http://youtu.be/hrlGVU8z7zc
正确的定义应该是:
values-v21\styles.xml
<resources>
<style name="AppTheme" parent="AppBaseTheme">
</style>
</resources>
values\styles.xml
<resources>
<style name="AppBaseTheme" parent="Theme.AppCompat">
</style>
<style name="AppTheme" parent="AppBaseTheme">
</style>
</resources>
在使用 Material Design 主题时,我的 values-v21 文件夹是否应该包含对 Theme.Appcompat 的引用? 我的 API 最小值是 9,我的目标 API 是 21.
我有以下内容: AndroidManifest.xml
<application
...
android:theme="@style/AppTheme">
values\styles.xml
<resources>
<style name="AppBaseTheme" parent="Theme.AppCompat.NoActionBar">
</style>
<style name="AppTheme" parent="AppBaseTheme">
</style>
</resources>
values-v21\styles.xml
<resources>
<style name="AppBaseTheme" parent="android:Theme.Material.Light">
</style>
</resources>
但是我明白了
...You need to use a Theme.AppCompat theme (or descendant) with this activity.
并且我已经将 Activity
扩展为 ActionBarActivity
我主要关注了下面的视频http://youtu.be/h57QpXp2TRg
您可以使用此代码区分 API 个版本
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
// Do something for Lollipop and above versions
} else{
// do something for phones running an SDK before Lollipop
}
如果您在没有 Appcompat 的情况下为 API 21 创建单独的布局,您将不需要参考。
否则您仍将使用需要使用 Theme.Appcompat
的 Appcompat它在我观看的视频中起作用,因为讲师使用的不是棒棒糖模拟器,而是较低版本。该系列的下一个视频解释了这个问题。 http://youtu.be/hrlGVU8z7zc
正确的定义应该是:
values-v21\styles.xml
<resources>
<style name="AppTheme" parent="AppBaseTheme">
</style>
</resources>
values\styles.xml
<resources>
<style name="AppBaseTheme" parent="Theme.AppCompat">
</style>
<style name="AppTheme" parent="AppBaseTheme">
</style>
</resources>