android:Theme.Material.Light requires API level 21 (current min is 8)

前端 未结 4 1926
盖世英雄少女心
盖世英雄少女心 2021-01-31 15:04

I want to use Material Theme in my application which has minimum sdk version of 8. As per docs - \"The material theme is only available in Android 5.0 (API level 21) and above.

相关标签:
4条回答
  • 2021-01-31 15:21

    You need to use android:theme="@style/Theme.AppCompat.Light" theme to get a material design.

    Make sure your min is 8 and your target is 21. And you're using build tools/sdk 21.

    0 讨论(0)
  • 2021-01-31 15:30

    For this you need to have 2 values folder.

    One that exist by default, and another, u have to create in your res folder and name it values-v21.

    In the default values folder, in styles.xml, use theme other than Material theme And in the styles.xml of values-v21 folder that you created, use Material theme.

    Android phone will automatically pickup the styles.xml which it support. If the phone supports Material Design (Lollipop devices), your app will use material theme (values-21 folder).

    if it doesnt (in phones running older android versions), the default values folder will be used.

    0 讨论(0)
  • 2021-01-31 15:34

    In your NameActivity.java file import the following:

    import android.support.v7.widget.Toolbar;
    

    Comment the previous one:

    //import android.widget.Toolbar;
    

    With this the problem is solved.

    0 讨论(0)
  • 2021-01-31 15:41

    Pedro Oliveira is right with regards to Theme.AppCompat, but some essential information is missing in that answer.

    A blog post titled appcompat v21: material design for pre-Lollipop devices! by Chris Banes from the Android team probably best answers the question of how to get Material Theme for API levels prior to 21.

    To summarise, you need appcompat-v7 dependency:

    dependencies {
        ...
        compile "com.android.support:appcompat-v7:21.0.3"
    }
    

    After that, for dark version as your base theme, use:

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

    And for light version:

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

    And if you're new to AppCompat, there are things you need to know, such as:

    All of your Activities must extend from ActionBarActivity*. It extends from FragmentActivity from the v4 support library, so you can continue to use fragments.

    *NB: more recently, ActionBarActivity has been deprecated in favour of AppCompatActivity.

    But you really should read the whole Setup section of that blog post! (The information on Toolbar vs Action Bar, and some of the comments are also something you probably shouldn't miss.)

    0 讨论(0)
提交回复
热议问题