Поиск всех доступных стилей, определяемых темами платформы Android
В нескольких учебниках по стилю для Android используются элементы родительского стиля, которые я не могу найти в стилях android.R.style. * (http://developer.android.com/reference/android/R.style.html).
Несколько примеров из статьи http://android-developers.blogspot.com/2011/04/customizing-action-bar.html. Ник использует родительские стили, например:
<style name="MyDropDownNav" parent="android:style/Widget.Holo.Light.Spinner.DropDown.ActionBar">
...
</style>
или
<style name="MyActionBarTabStyle" parent="android:style/Widget.Holo.Light.ActionBarView_TabView">
...
</style>
Откуда берутся эти родительские стили? Можно ли перечислить все доступные родительские стили?
Спасибо.
Ответы
Ответ 1
Как указано в "Применение стилей и тем" :
Платформа Android предоставляет большую коллекцию стилей и тем которые вы можете использовать в своих приложениях. Вы можете найти ссылку на все доступных стилей в классе R.style. Чтобы использовать стили, перечисленные здесь, замените все подчеркивания в имени стиля на период. Например, вы можете применить тему Theme_NoTitleBar с помощью "@android:style/Theme.NoTitleBar"
.
Ссылка R.style, однако, плохо документирована и не тщательно описывайте стили, поэтому просматривайте фактический исходный код для эти стили и темы помогут вам лучше понять, что которые каждый из них предоставляет. Для лучшей ссылки на Стили и темы Android, см. Следующий исходный код:
Эти файлы помогут вам научиться на примере. Например, в Исходный код для Android, вы найдете объявление для <style
name="Theme.Dialog">
. В этом определении вы увидите все свойства, которые используются для стилей диалоговых окон, которые используются Android рамки.
Ответ 2
Для "android: style/Widget.Holo.Light.ActionBarView_TabView" см.:
http://developer.android.com/reference/android/R.style.html#Widget_Holo_Light_ActionBar_TabView
... и обратите внимание на уровень API, который был введен в!
Для "android: style/Widget.Holo.Light.Spinner.DropDown.ActionBar" попробуйте:
http://developer.android.com/reference/android/R.style.html#Widget_Holo_Light_DropDownItem_Spinner
Последний - это всего лишь мое лучшее предположение - я не могу заставить список фактически упасть.
Ответ 3
Parent
атрибут является необязательным при создании собственных themes
или styles
.
В основном атрибуты Parent
используются для наследования стилей, которые уже определены в самой платформе.
Если мы хотим наследовать theme
или style
и перезаписать некоторые функции, мы можем использовать атрибут Parent
.
Здесь указана ссылка для всей доступной платформы styles
.
И еще один совет:
Если вы хотите наследовать свой собственный style
, который вы создали самим, значит следовать этому примеру, чтобы наследовать.
<style name="MyDropDownNav.Red">
<item name="android:textColor">#FF0000</item>
</style>
Ответ 4
Здесь Official Google Documentation
для Default List
Themes
и Styles
Документация Google Android
Вы можете найти здесь, в этой документации
Я знаю, что ответ на вышеупомянутый вопрос заканчивается здесь, все еще уступая место реализации, поскольку он будет полезен для новичков.
Как реализовать их
Это то, что я получил от themes.xml
<style name="Theme.NoTitleBar">
<item name="android:windowNoTitle">true</item>
</style>
Теперь to implement
он в моем проекте
Мне нужно добавить следующую строку в мой Styles.xml
файл
<style name="AppTheme" parent="android:Theme.NoTitleBar" />
В этом я создаю свой own theme
с именем "AppTheme
", который будет inherit
его свойствами из already defined them by google
. поэтому я упоминаю его в parent
Изучая themes.xml
, а Styles.xml
будет не только help to get the list of the already defined
тем и стилей, но также help novices to have an idea how to create
тем.
Поскольку тема, которую я упоминаю здесь, в parent
, уже определена андроидом, поэтому мы будем использовать ее, указав имя android:
на название темы.
Если вы хотите inherit your created theme
, то
<style name="Theme2" parent="AppTheme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
то просто укажите style name to the parent
, здесь я использую AppTheme
в качестве родительской темы для theme2