使用Material Design主题时,我的values-v21文件夹是否应包含对Theme.Appcompat的引用? 我的API min为9,目标API为21。
我有以下内容: 的AndroidManifest.xml
<application
...
android:theme="@style/AppTheme">
值\ styles.xml
<resources>
<style name="AppBaseTheme" parent="Theme.AppCompat.NoActionBar">
</style>
<style name="AppTheme" parent="AppBaseTheme">
</style>
</resources>
值-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
答案 0 :(得分:2)
它在我关注的视频中工作,因为教师没有使用棒棒糖模拟器,而是使用较低版本。该系列的下一个视频解释了这个问题。 http://youtu.be/hrlGVU8z7zc
正确的定义应该是:
值-V21 \ styles.xml
<resources>
<style name="AppTheme" parent="AppBaseTheme">
</style>
</resources>
值\ styles.xml
<resources>
<style name="AppBaseTheme" parent="Theme.AppCompat">
</style>
<style name="AppTheme" parent="AppBaseTheme">
</style>
</resources>
答案 1 :(得分:0)
您可以使用此代码分隔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