2014-10-19 65 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