AlexandrDP
@AlexandrDP
C#, ASP .NET MVC, WindowsPhone, Android

Android стили и темы?

Решил попробовать работать со стилями и темами и сразу стал.


создал стиль (задача, весь текст сделать зеленым)

<style name="PrivatStyle" parent="android:style/Theme.DeviceDefault">
        <item name="android:textColor">#00FF00</item>
    </style>



в манифесте указал тему
android:theme="@style/PrivatStyle"


В итоге

в TextView — текст зеленый

в EditText и Button — обычный белый


Хотя, как я понял, такое назначение темы сделает все textColor зеленым.

Какой момент я не учел?
  • Вопрос задан
  • 10837 просмотров
Пригласить эксперта
Ответы на вопрос 4
FanKiLL
@FanKiLL
Дело в том что Button, EditText это совсем другой элемент, у которого определены свои стили. Вы же переопределили только цвет у TextView похоже.

Для кнопок нужно переопределить android:buttonStyle
Для чекбоксов android:checkboxStyle
etc…
Ответ написан
Комментировать
FanKiLL
@FanKiLL
Попробуйте так

<style name="CustomText" parent="@style/Text">        <item name="android:textSize">20sp</item>        <item name="android:textColor">#008</item>    </style>  

Протупил, нето…
Ответ написан
Комментировать
AlexandrDP
@AlexandrDP Автор вопроса
C#, ASP .NET MVC, WindowsPhone, Android
Пока получился такой вариант.
Работает все кроме ExpandableListView.
Как то через… странно, все это сделано.
Вот как можно понять почему везде все применяется а именно к ExpandableListView реакции 0, хотя на layout лежат те же TextView.

	<style name="PrivatStyle" parent="Theme.Sherlock">
	    
        <item name="android:textColor">@color/default_text_color</item>
        <item name="android:textAppearance">@style/MyTextAppearance</item>
        <item name="android:buttonStyle">@style/MyButtonStyle</item>
        <item name="android:editTextStyle">@style/MyEditTextStyle</item>
        <item name="android:imageButtonStyle">@style/MyImageButtonStyle</item>
        <item name="android:textViewStyle">@style/MyTextViewStyle</item>
        <item name="android:expandableListViewStyle">@style/MyExpandableListViewStyle</item>
        <item name="android:listViewStyle">@style/MyListViewStyle</item>
        
	</style>

	<style name="MyTextAppearance" parent="@android:style/TextAppearance">
        <item name="android:textColor">@color/default_text_color</item>
  	</style>
  	
	<style name="MyButtonStyle" parent="@android:style/Widget.Button">
        <item name="android:textColor">@color/default_text_color</item>
  	</style>
		
	<style name="MyEditTextStyle" parent="@android:style/Widget.EditText">
        <item name="android:textColor">@color/default_text_color</item>
  	</style>

	<style name="MyExpandableListViewStyle" parent="@android:style/Widget.ExpandableListView">
        <item name="android:textColor">@color/default_text_color</item>
	</style>

	<style name="MyListViewStyle" parent="@android:style/Widget.ListView">
        <item name="android:textColor">@color/default_text_color</item>
  	</style>

	<style name="MyImageButtonStyle" parent="@android:style/Widget.ImageButton">
        <item name="android:textColor">@color/default_text_color</item>
  	</style>
	
	<style name="MyTextViewStyle" parent="@android:style/Widget.TextView">
        <item name="android:textColor">@color/default_text_color</item>
  	</style>
Ответ написан
Комментировать
FanKiLL
@FanKiLL
Попробуйте ещё вот так поменять цвет во всех контролах разом.
 <style name="PinkTheme" parent="android:style/Theme">
        <item name="android:textColorPrimary">#FF69B4</item>
    </style>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы