Я довольно смущен тем, как работает стилизация в библиотеке appcompat.
Согласно здесь :
Теперь мы используем поддержку поддержки Toolbar / ActionBar на всех платформах, что означает, что мы больше не читаем никаких андроидов: атрибуты, связанные с панелью действий.
Для приложений, которые уже имеют существующие настройки appcompat, это означает, что вы должны удалить темы v14 +, которые повторно устанавливают те же значения в пространстве имен android. Обратите внимание, что это ТОЛЬКО применимо к стилям / виджетам, которые влияют на панель действий.
- Изменение центральной позиции эффекта эффекта пульсации для андроида.
- App: тема теперь устарела
- Изменить цвет панели инструментов в Appcompat 21
- Кнопка BackgroundTint не работает с AppCompat v23
- КоординаторLayout NullPointerException в onTouchEvent
Для большинства приложений вам требуется только одно объявление темы, в значениях /
Вот мой вопрос:
Если я хочу использовать материальную конструкцию ActionBar в API 14+, я могу просто использовать ActionBar / Toolbar, представленную в appcompat_v7, и стирать ее в общей папке значения / с удалением пространства имен «android:»? Но почему я вижу людей, пишущих код ниже:
<style name="MyTheme" parent="Theme.AppCompat.Light.DarkActionBar"> .... <item name="windowContentOverlay">@null</item> <item name="android:windowContentOverlay">@null</item> .... </style>
Почему существует пространство имен «android:»? В чем разница между приведенным выше кодом и использованием значений-v21, value-v14, папок?
Может кто-нибудь объяснить или направить меня к правильному источнику?
Да, если вы используете AppCompat v21 +, вам нужна только одна тема с родителем Theme.AppCompat
(или Theme.AppCompat.Light
такой как Theme.AppCompat.Light
), и вам не нужны атрибуты android:
namespace для флагов Action bar / window , А также отдельные темы для v14, v20 и т. Д. Полный список атрибутов верхнего уровня, которые AppCompat предоставляет на всех уровнях API, можно найти в AppCompat R.styleable Theme .
Большая часть кода в Интернете (включая части сайта developer.android.com) все еще написана для pre-v21 AppCompat, для чего требуются и android:
и не префиксные версии.