#android #android-manifest
#Android #android-манифест
Вопрос:
Как я могу настроить все виджеты в приложении, создав один стиль и применив его к приложению через android: theme в AndroidManifest?
Ответ №1:
Вот пример, который может помочь (он может не работать дословно, поскольку я изменил его, чтобы упростить и продемонстрировать некоторые другие вещи, которые вы можете сделать).
В resvaluesstyles.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="TextColorForTheme">
<item name="android:textColor">@color/red</item>
</style>
</resources>
В resvaluesthemes.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="myTheme" parent="@style/android:Theme">
<item name="android:listSeparatorTextViewStyle">@style/TextColorForTheme</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowFrame">@null</item>
</style>
</resources>
Затем в вашем AndroidManifest.xml , установите либо все приложение, либо отдельные действия для использования этой темы.:
<application
android:theme="@style/myTheme"
<snip>
<activity
android:theme="@style/myTheme"
<snip>
Кроме того, вы можете задать тему в коде для своей Java-активности:
@Override
public void onCreate(Bundle bundle)
{
super.onCreate(bundle);
setTheme(R.style.myTheme);
<snip>
Комментарии:
1. Хорошо, но это работает глобально, не так ли? Что я хотел бы сделать, так это установить стиль отдельно на ex. Кнопка, текстовое поле и т. Д
2. Тема позволяет вам применить стиль ко всему приложению или действию (я думал, это то, о чем вы спрашивали). Если вы хотите применить стиль к отдельным элементам пользовательского интерфейса, просто используйте style:»@style:TextColorForTheme» в XML для объекта (например, TextView). Смотрите: developer.android.com/guide/topics/ui/themes.html
Ответ №2:
Вы не сможете сделать это, создав только один стиль. Тема — это, по сути, мета-стиль, который определяет стили по умолчанию для каждого из различных доступных виджетов. Вы начнете с создания темы (которая сама по себе является стилем) с родительским элементом одной из существующих системных тем и установки атрибутов стиля по умолчанию для каждого виджета, который вы хотите изменить из базовой темы. Например, если у вас был другой стиль кнопок, который вы хотели установить по умолчанию в своей теме, вы можете добавить следующее в определение темы:
<item name="android:buttonStyle">@style/MyButtonStyle</item>
Смотрите http://developer.android.com/guide/topics/ui/themes.html для получения дополнительной информации.
Комментарии:
1. Я не заметил, что * Атрибуты стиля. Большое спасибо.