2015-09-10 23 views
15

Để hỗ trợ API 19 trở xuống, tôi cho phép các hoạt động của mình mở rộng AppCompatActivity. Tôi đã cố gắng đặt chủ đề gốc sau cho v21 parent="android:Theme.Material" Khi tôi cố gắng chạy ứng dụng của mình, nó đã đưa ra một ngoại lệ và yêu cầu tôi sử dụng Hoạt động thay vì AppCompatActivity.thiết kế material design android với AppCompatActivity

Điều này có nghĩa là tôi phải tạo Hoạt động mới mở rộng Hoạt động cho API 21 trở lên để có được thiết kế material design không? đây có phải là cách tốt hơn không?

+2

Để có được tài liệu de dấu hiệu, bạn cần phải mở rộng Theme.AppCompat – Eenvincible

+0

Vâng tôi đã làm, đọc nó một lần nữa –

+0

Bạn không muốn mở rộng Theme.Material trực tiếp như vậy; – Eenvincible

Trả lời

8

AppCompatActivity yêu cầu chủ đề AppCompat. Sử dụng một chủ đề khác nhau, giống như android:Theme.Material bạn sẽ nhận được

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity 

Chỉ cần xác định một chủ đề trong tập tin styles.xml của bạn:

<style name="AppTheme" parent="Theme.AppCompat"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 

    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
</style> 

Với chủ đề AppCompat bạn có thể có thiết kế Chất liệu cũng trong thiết bị với API < 21.

Các android:Theme.Material có thể được sử dụng chỉ với API> = 21.

3

Đây là cách tôi đã thiết lập tập tin themes.xml tôi để hỗ trợ các tài liệu thiết kế:

<resources> 

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="windowActionBar">false</item> 
    <item name="android:windowNoTitle">true</item> 
</style> 

</resources> 

Bây giờ, trong hoạt động của bạn, bạn có thể mở rộng AppCompatActivity như bình thường và bạn sẽ nhận được những cái nhìn bạn muốn! Chúc may mắn!

+0

Cảm ơn câu trả lời. Bản thân tôi đã bối rối khi đọc hướng dẫn của Google http://developer.android.com/training/material/theme.html. Không chắc chắn nếu có thể có một hướng dẫn tốt hơn của Google ra khỏi đó thực sự đề cập đến hỗ trợ ngược. – stevebot

+0

https://developer.android.com/training/material/compatibility.html xem liên kết này –

Các vấn đề liên quan