2014-10-19 66 views
2

我正在创建一个应用程序,其中包括对Android Lolipop和更早版本的支持。扩展活动或ActionBarActivity

根据Maintaining compatibility文档,我计划使用AppCompact的非Lolipop设备和FragmentActivity的ActionBarActivity与Lolipop设备的材质。

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

现在的问题是我应该

MyActivity extends Activity 

MyActivity extends ActionBarActivity 

致以Activity类如果我使用的活动。它崩溃的早期Android版本,并说我补充ActionBarActivity和反之亦然发生的棒棒糖

EDIT ------

值-21

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

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

你有任何主题定义 – Elltz 2014-10-19 10:28:25

+0

检查我的编辑.. – 2014-10-19 13:10:44

+0

如果有东西崩溃,发布堆栈跟踪。 – nhaarman 2014-10-19 13:10:57

回答

1

如果您将在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)用户

+0

查看google发布的新文档。其中他们将AppCompact for API> = 14与API <= 19一起引入材料设计。 https://developer.android.com/training/material/compatibility.html – 2014-10-19 13:08:11

+0

好的我已经检查过了我没有阅读任何与ActionBarActivity相关的东西,所以我假设我说的仍然有效,使用ActionBarActivity来支持ActionBar in api> = 7,发布堆栈跟踪 – forcewill 2014-10-19 21:38:31

0

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

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

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

试试这个,让我知道,如果它

注1:香港专业教育学院没有尝试过,和IM从各种各样的想法

PS魔术;是ive阅读文档..

+0

我试过但它的工作问题是AppCompat只有一些小部件的材料设计...示例材料ProgressBar不存在于AppCompat – 2014-10-19 18:30:46

+0

从我理解你是你材料progressBar ryt?还有的现在不可用可用的在线订购Widgets是 的EditText 微调 复选框 单选 SwitchCompat CheckedTextView 所以它的时间问题..我已经明白你的回答了你?让我知道兄弟.. @ PrinceVegeta – Elltz 2014-10-19 18:45:45

+0

是的,你已经理解了我。使用AppCompat for Lolipop设备限制了开发者拥有Material的全部权力。所以我希望Lolipop用户获得完整的材质效果和非lolipop用户使用AppCompact获得部分材质效果。 – 2014-10-19 19:07:38