[РЕШЕНО] Динамически создаваемые элементы и Material Design

Интерфейс, диалоги, темы, стили, меню
Ответить
yura3d
Сообщения: 7
Зарегистрирован: 03 окт 2014, 21:53

[РЕШЕНО] Динамически создаваемые элементы и Material Design

Сообщение yura3d » 25 май 2015, 19:51

Всем привет!

Переводя одно из своих приложений на модный нынче Material Design, столкнулся с проблемой.
В моём приложении в XML есть элементы-контейнеры (LinearLayout и т.п.), содержимое которых заполняется программно, на этапе выполнения приложения, с использованием addView():

Код: Выделить всё

Button b = new Button();
b.setText("Test");
...
parent.addView(b);
Это работает, однако добавляемые элементы (Button, CheckBox и т.п.) при этом "теряют" Material Design и отображаются в старом стиле Holo на старых (pre-Lollipop) девайсах. В других случаях, когда элементы добавлены не программно, а прописаны в XML, проблем нет.

Прочитал этот и этот посты по теме. Попробовал создавать элементы не программно, а вынести их в XML с последующим inflate-ингом и вставкой с помощью той же addView(). Проблема осталась.

Может кто-нибудь подсказать, как вставить виджет в Material Design динамически?
Последний раз редактировалось yura3d 26 май 2015, 11:27, всего редактировалось 2 раза.

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Динамически создаваемые элементы и Material Design

Сообщение klblk » 26 май 2015, 08:04

1) в качестве контекста для View используется Activity с нужной темой?
2) попробуйте в манифесте у application тоже указать материальную тему.

yura3d
Сообщения: 7
Зарегистрирован: 03 окт 2014, 21:53

Re: Динамически создаваемые элементы и Material Design

Сообщение yura3d » 26 май 2015, 11:26

klblk писал(а):1) в качестве контекста для View используется Activity с нужной темой?
Спасибо, проблема была в этом. Для создания LayoutInflater я использовал getApplicationContext(), после передачи в него текущей Activity проблема была решена.

Ответить