Material Design, AppCompat и обратная совместимость

Я пытаюсь понять принципы использования Material Design немного лучше (я новичок в этой области и читаю документацию и учебные пособия, но тема для меня все еще немного размыта), и я буду рад за некоторая помощь. Что я пробовал до сих пор, так это наличие 2 папок (values ​​and values-21) с файлом styles.xml для каждой из них -

Значения / styles.xml:

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

Значения-V21 / styles.xml:

<style name="AppTheme" parent="android:Theme.Material.NoActionBar"></style>

Проблема начинается, когда я пытаюсь использовать действия, которые наследуются от AppCompatActivity (насколько я понимаю, это то, что мне нужно сделать, чтобы поддерживать обратную совместимость на устройствах до Lollipop для таких вещей, как Material Design? Я прав? Дополнительная информация здесь будет отличный). Если я это сделаю, приложение не будет работать на устройствах с API 21 или выше, так как «AppTheme» должен наследоваться от AppCompat.

Что я могу сделать, чтобы решить эту проблему, так это создать базовую тему, которая наследуется от AppCompat, а затем сделать стиль в обоих файлах наследуемым от этой базовой темы ... Но тогда я больше не наследую от Material .... что подводит меня к вопросу (ам) -

Material Design - это просто заданная тема? И если да, то как мне решить мою проблему? И что именно здесь делает AppCompatActivity? Или Материальный Дизайн - это просто набор правил и принципов, которым я должен следовать? И если да, то зачем вообще нужен Theme.Material. *? Я буду рад любой дополнительной информации, которую кто-нибудь может дать мне по этому вопросу.

Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос