我正在创建一个应用程序,其中包括对Android Lolipop和更早版本的支持。
根据Maintaining compatibility文档,我计划将非App的ActionBarActivity与AppCompact一起用于非Lolipop设备,而FragmentActivity的材料用于Lolipop设备。
我创建了两个不同的值文件夹。
现在的问题是我应该如何扩展我的Activity类
MyActivity extends Activity
要么
MyActivity extends ActionBarActivity
如果我使用活动。它在较早的android版本上崩溃,并说我添加ActionBarActivity,反之亦然,lolipop
编辑------
值21
<style name="AppTheme" parent="android:Theme.Material.Light">
价值观
<style name="AppTheme" parent="Theme.AppCompat.Light">
最佳答案
如果要在低于11的api上使用ActionBar,则可以扩展ActionBarActivity以支持api> = 7签出http://developer.android.com/guide/topics/ui/actionbar.html
也可能会引起混乱,但是当您使用ActionBarActivity
时
您的主题必须是Theme.AppCompact
后代之一的子代,例如
<style name="MyTheme" parent="Theme.AppCompact">
<item name="android:colorPrimary">@color/accent_1</item>
<item name="android:colorPrimaryDark">@color/accent_dark</item>
<item name="android:colorAccent">#f00</item>
<item name="colorPrimary">@color/accent_1</item>
<item name="colorPrimaryDark">@color/accent_dark</item>
<item name="colorAccent">#f00</item>
</style>
非前缀
android:
为< API 21 (Lollipop)
的用户提供您想要的Material主题兼容性。关于android - 扩展Activity或ActionBarActivity,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26449454/