Как сменить тему андроида программно только на снэк-бар?
Я хочу изменить тему моей пользовательской закусочной
public class CustomSnackbar extends BaseTransientBottomBar<CustomSnackbar> {
public CustomSnackbar(
CoordinatorLayout parent,
View contentView,
BaseTransientBottomBar.ContentViewCallback contentViewCallback) {
super(parent, contentView, contentViewCallback);
}
я вижу в макете это может быть установлено как:
android:theme="@style/Theme.my.WithDarkTextButton"
Я попытался установить тему грамматически, но не нашел эквивалента:
contentView.setTheme
пропал, отсутствует. не может ли атрибут evey xml быть установлен с помощью кода?
1 ответ
Решение
Если вы используете LayoutInflater, то вам нужно установить тему в XML.
Если вы программно создаете представление:
View contentView = new View(context);
Затем измените это немного:
View contentView = new View(new ContextThemeWrapper(context, R.style.Theme_my_WithDarkTextButton);
Вы не можете установить тему по требованию. Представление только читает атрибуты темы, когда она создана.