powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Разные темы и стили в приложении
6 сообщений из 6, страница 1 из 1
Разные темы и стили в приложении
    #39919913
Slon747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не могу понять, Как применять разные стили.
Допустим, есть 2 темы: светлая и темная.
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    <!-- Светлая тема -->
    <style name="AppThemeLight" parent="@style/Theme.AppCompat.Light">
        <item name="colorPrimary">@color/primary_light</item>
        <item name="colorPrimaryDark">@color/primary_dark_light</item>
        <item name="colorAccent">@color/accent_light</item>
        <item name="colorSwitchThumbNormal">@color/primary_dark</item>
 
        <item name="android:windowBackground">@color/windowBackground</item>
    </style>
 
    <!-- Тёмная тема -->
    <style name="AppThemeDark" parent="@style/Theme.AppCompat">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primary_dark</item>
        <item name="colorAccent">@color/accent</item>
    </style>



Есть 2 вида кнопок, для светлой темы и для темной
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    <!-- Кнопки для светлой темы -->
    <style name="MainButtonStyleLight">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">64dp</item>
        <item name="android:background">@drawable/main_button_selector</item>
    </style>
 
    <!-- Кнопки для тёмной темы -->
    <style name="MainButtonStyleBlack">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">64dp</item>
        <item name="android:background">@drawable/main_button_selector_black</item>
    </style>



Указываю стиль кнопки (в данном случае для светлой темы):
Код: xml
1.
2.
3.
4.
                    <ImageButton
                        android:id="@+id/btnReports"
                        style="@style/MainButtonStyleLight"
                        android:src="@drawable/reports" />



Как теперь при старте программы с темной темой заставить кнопку принять стиль MainButtonStyleBlack?
...
Рейтинг: 0 / 0
Разные темы и стили в приложении
    #39919944
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slon747
Как теперь при старте программы с темной темой заставить кнопку принять стиль MainButtonStyleBlack?

В стилях нужно прописывать и стиль кнопки https://developer.android.com/guide/topics/ui/look-and-feel/themes#Widgets

Доступные указатели для стилей https://developer.android.com/reference/android/R.attr.html#buttonStyle
...
Рейтинг: 0 / 0
Разные темы и стили в приложении
    #39920057
Slon747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,

мне кажется, мы о разном говорим.
Можете на моем примере показать, чтобы стиль кнопки зависел от темы приложения?
...
Рейтинг: 0 / 0
Разные темы и стили в приложении
    #39920089
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например (без проверки):
Slon747
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
    <!-- Светлая тема -->
    <style name="AppThemeLight" parent="@style/Theme.AppCompat.Light">
        <item name="colorPrimary">@color/primary_light</item>
        <item name="colorPrimaryDark">@color/primary_dark_light</item>
        <item name="colorAccent">@color/accent_light</item>
        <item name="colorSwitchThumbNormal">@color/primary_dark</item>
        <item name="buttonStyle">@style/MainButtonStyleLight</item>
        <item name="android:windowBackground">@color/windowBackground</item>
    </style>



А самим кнопкам стиль не указывать. В данном случае buttonStyle системное название как и colorPrimary.
Даже в дизайне должно реагировать на переключение темы.

Пишу навскидку, потому что не помню проблем с этим вопросом, а проекта под рукой нет.
...
Рейтинг: 0 / 0
Разные темы и стили в приложении
    #39920137
Slon747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman
Например (без проверки):
Slon747
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
    <!-- Светлая тема -->
    <style name="AppThemeLight" parent="@style/Theme.AppCompat.Light">
        <item name="colorPrimary">@color/primary_light</item>
        <item name="colorPrimaryDark">@color/primary_dark_light</item>
        <item name="colorAccent">@color/accent_light</item>
        <item name="colorSwitchThumbNormal">@color/primary_dark</item>
        <item name="buttonStyle">@style/MainButtonStyleLight</item>
        <item name="android:windowBackground">@color/windowBackground</item>
    </style>



А самим кнопкам стиль не указывать. В данном случае buttonStyle системное название как и colorPrimary.
Даже в дизайне должно реагировать на переключение темы.

Пишу навскидку, потому что не помню проблем с этим вопросом, а проекта под рукой нет.


Спасибо! Теперь понятно.
Так работает.
Но теперь все кнопки будут под одну гребенку. Возможно, так подойдет. Буду проверять.
Скажите, есть ли способ какой-либо кнопке сбросить стиль, как будто не было описания "buttonStyle"?
...
Рейтинг: 0 / 0
Разные темы и стили в приложении
    #39920285
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slon747
Скажите, есть ли способ какой-либо кнопке сбросить стиль, как будто не было описания "buttonStyle"?

В коде, в onCreate активности, по идее можно менять темы/стили.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Разные темы и стили в приложении
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]