Поиск всех доступных стилей, определенных темами платформы Android - PullRequest
44 голосов
/ 03 июля 2011

В нескольких уроках по стилизации для Android используются родительские элементы стиля, которые я не могу найти в android.R.style. * Styles (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>

Откуда берутся эти родительские стили? Можно ли перечислить все доступные родительские стили?

Спасибо.

Ответы [ 4 ]

70 голосов
/ 22 августа 2011

Как указано в «Применение стилей и тем» статья:

Платформа Android предоставляет большой набор стилей и тем, которые вы можете использовать в своих приложениях.Вы можете найти ссылку на все доступные стили в классе R.style .Чтобы использовать перечисленные здесь стили, замените все подчеркивания в имени стиля точкой.Например, вы можете применить тему Theme_NoTitleBar с "@android:style/Theme.NoTitleBar".

Ссылка R.style , однако, плохо документированаи не описывает полностью стили, поэтому просмотр фактического исходного кода для этих стилей и тем поможет вам лучше понять, какие свойства стиля предоставляет каждый из них.Чтобы лучше ознакомиться со стилями и темами Android, см. Следующий исходный код:

Эти файлы помогут вам научиться на примере.Например, в исходном коде тем Android вы найдете объявление для <style name="Theme.Dialog">.В этом определении вы увидите все свойства, которые используются для стилизации диалогов, которые используются в платформе Android.

3 голосов
/ 06 мая 2013

Здесь Official Google's 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, поэтому мы будем использовать ее, добавив префикс 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

3 голосов
/ 30 января 2012
Атрибут

Parent является необязательным при создании собственного themes или styles. В основном parent атрибуты используются для наследования стилей, которые уже определены в самой платформе.

Если мы хотим унаследовать theme или style и перезаписать некоторые функции, мы можем использовать атрибут parent.

Вот ссылка для всех доступных платформ, определенных styles.

И еще один совет:

Если вы хотите наследовать свой собственный style, который вы создали самостоятельно, следуйте этому примеру для наследования.

    <style name="MyDropDownNav.Red">
        <item name="android:textColor">#FF0000</item>
    </style>
3 голосов
/ 20 октября 2011

Для "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 "try: http://developer.android.com/reference/android/R.style.html#Widget_Holo_Light_DropDownItem_Spinner

Последнее - просто мое лучшее предположение - я не могу получить список, который действительно выпадает.

...