2016-04-15 116 views
6

我是Android新手,現在有點困惑。我是否需要AppCompatActivity&v7支持最低sdk 21的庫?

在android studio中使用min sdk 21(Android 5.0)設置了一個新項目後,默認情況下,我的main_activity延伸了AppCompatActivity,這一開始沒有問題。 我試圖設置材質。如圖所示的黑暗主題here@android:style/Theme.Material不適用於AppCompatActivity。 現在,main_activity只是延伸Activity

我需要AppCompatActivity與分SDK 21,如果我想使用的功能,如Action Bar還是確定只從Activity延伸,我認爲AppCompatActivity & v7 Support Libraries是在那裏支持下SDK版本能夠使用材料設計,我錯過了什麼?

如果在sdk level 21中不需要AppCompatActivity,那麼即使將21設置爲min sdk,android studio爲什麼會將它設置爲默認值?

我猜我的一個主要問題是,使用材料設計主題的最佳做法是什麼,如解釋here與Android Studio默認使用的AppCompatActivity相結合。

+0

你能選擇一個答案? –

+1

這只是部分回答,我仍然不確定這裏的最佳做法。而且由於我想保存一面,我決定堅持使用Appcompat並停止尋找答案。 –

回答

0

不,但在design支持庫和support-v4有一些你可能想要的好看法。

設計:

  • NavigationView

支持-V4:

  • DrawerLayout

如果您要使用「正常」FragmentsViewPager,則需要使用support-v13

+0

謝謝你的回答,我絕對想要一個導航/抽屜/ NavigationView?但是,如果不使用AppCompat,不應該可以在api 21(5.0)中原生使用嗎?我還很不確定使用'@android:style/Theme.Material'的最佳做法是什麼,因爲它不適用於'AppCompat',因爲這是我想要的主要事情。 –

+0

是的,它不需要'AppCompat'它需要''設計'庫。 'NavigationView'位於'design'庫中。 –

1

如果您想爲較老的平臺提供更新的SDK功能,則支持庫是必需的。如果你的minSDK = 5,那麼你只有在它們包含的東西不包含在5的android SDK中時才需要支持庫。

+0

謝謝,澄清我正在使用最低SDK API 21(Lollipop),但仍然android studio從AppCompatActivity默認擴展main_Activity,這與API 21中引入的Material Design主題不相容。我只是試圖找出最佳實踐或如何正確使用材料主題。 –

1

是的,你應該使用app compat庫和片段。

有支持庫中捆綁的bug修復。通過這種方式,Google可以修復Android中的錯誤,而無需等待人們更新手機。

它是使用支持庫,包括程序兼容性和FragmentCompat

至於主題的最佳實踐,你的主題應該是這樣的

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

看到這個https://medium.com/google-developers/theming-with-appcompat-1a292b754b35#.988b91sl1