2017-07-20 88 views
3

我想我可能誤解了在線文檔,但在使用Android設計支持庫實現Android應用材質設計方面有很多。Android:我可以使用Design Support Library而不是AppCompat來設計Material Design UI嗎?

我有一個最低SDK爲14的應用程序,我可以增加到16.我不使用協調器佈局或任何東西,但對Material Design Theme和Snackbar具有以下依賴關係。

compile 'com.android.support:appcompat-v7:25.3.1' 
compile 'com.android.support:design:25.3.1' 

我不知道我是否可以刪除依賴於程序兼容性,而是隻使用設計支持庫,以實現材料的設計主題,但我無法找到如何得到這個。或者我錯誤地理解了這一點?

+0

你會得到什麼錯誤? –

回答

0

您可以省略appcompat依賴項,因爲design對它有依賴性。驗證您可以使用Gradle依賴關係樹。在這裏它看起來如何。我使用com.android.support:design:24.2.1

+--- com.android.support:design:24.2.1 
| +--- com.android.support:support-v4:24.2.1 
| | +--- com.android.support:support-compat:24.2.1 
| | | \--- com.android.support:support-annotations:24.2.1 
| | +--- com.android.support:support-media-compat:24.2.1 
| | | \--- com.android.support:support-compat:24.2.1 (*) 
| | +--- com.android.support:support-core-utils:24.2.1 
| | | \--- com.android.support:support-compat:24.2.1 (*) 
| | +--- com.android.support:support-core-ui:24.2.1 
| | | \--- com.android.support:support-compat:24.2.1 (*) 
| | \--- com.android.support:support-fragment:24.2.1 
| |   +--- com.android.support:support-compat:24.2.1 (*) 
| |   +--- com.android.support:support-media-compat:24.2.1 (*) 
| |   +--- com.android.support:support-core-ui:24.2.1 (*) 
| |   \--- com.android.support:support-core-utils:24.2.1 (*) 
| +--- com.android.support:appcompat-v7:24.2.1 
| | +--- com.android.support:support-v4:24.2.1 (*) 
| | +--- com.android.support:support-vector-drawable:24.2.1 
| | | \--- com.android.support:support-compat:24.2.1 (*) 
| | \--- com.android.support:animated-vector-drawable:24.2.1 
| |   \--- com.android.support:support-vector-drawable:24.2.1 (*) 
| \--- com.android.support:recyclerview-v7:24.2.1 
|   +--- com.android.support:support-annotations:24.2.1 
|   +--- com.android.support:support-compat:24.2.1 (*) 
|   \--- com.android.support:support-core-ui:24.2.1 (*) 

爲了自己使用它

搖籃(右上標籤) - >執行搖籃任務(gradle這個符號) - >確保您在:app - >運行app:dependencies

因此com.android.support:design:25.3.1將具有com.android.support:appcompat-v7:25.3.1作爲依賴關係。

+0

我想你的回答間接地回答了我的問題,因爲我需要Snackbar,並且依賴於AppCompat的pre-sdk-22,所以這是不可能的。它並沒有讓我感到困擾,但爲Material Design Theme設計了一個完整的支持庫似乎有點矯枉過正。任何選擇?我大概可以沒有小吃店。 –

+0

@ShahidThaika支持庫通常是一個好主意,因爲它們通常是向後兼容的。在下一次sdk更新中,您自己的解決方案可能已過時。 –

0

比較好的方法是使用AppCompat,就像在老版本的Android中一樣,它會調整一切。這也取決於你要使用哪個視圖:如果它是普通的按鈕或編輯文本,最好使用標準的。因爲所有的Android版本都支持它們。