扩展活动或ActionBarActivity

时间:2014-10-19 10:10:57

标签: android material

我正在创建一个应用程序,其中包括对Android Lolipop和早期版本的支持。

基于Maintaining compatibility文档,我计划将ActionBarActivity与AppCompact一起用于非Lolipop设备,将FragmentActivity用于Lolipop设备的材料。

我创建了两个不同的值文件夹。

现在的问题是我应该如何使用

扩展我的Activity类
MyActivity extends Activity 

MyActivity extends ActionBarActivity

如果我使用Activity。它崩溃了早期的Android版本,并说我要添加ActionBarActivity,反之亦然的是lolipop

编辑------

值-21

<style name="AppTheme" parent="android:Theme.Material.Light">

<style name="AppTheme" parent="Theme.AppCompat.Light">

2 个答案:

答案 0 :(得分:1)

如果您要在低于11的api上使用ActionBar以支持api&gt; = 7签出http://developer.android.com/guide/topics/ui/actionbar.html

,则可以扩展ActionBarActivity

此外,它可能会引起混淆,但当您使用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)

用户提供的材料主题兼容性

答案 1 :(得分:0)

扩展ActionBarActivity并使用Theme.AppCompat - 所以你的风格主题将只是这个值 - 21

<style name="AppTheme" parent="Theme.AppCompat">

<style name="AppTheme" parent="Theme.AppCompat">

尝试这个,让我知道它是否有效

注1:我没有尝试过,而且我从各种各样的想法中发现了这个想法

PS;是的,我已阅读文档..