Как сменить тему андроида программно только на снэк-бар? - PullRequest
0 голосов
/ 29 октября 2018

Я хочу изменить тему моей пользовательской закусочной

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 Ответ

0 голосов
/ 29 октября 2018

Если вы используете LayoutInflater, то вам нужно установить тему в XML.

Если вы программно создаете представление:

View contentView = new View(context);

Затем измените это немного:

View contentView = new View(new ContextThemeWrapper(context, R.style.Theme_my_WithDarkTextButton);

Вы не можете установить тему по требованию. Представление считывает атрибуты темы только после ее создания.

...