Страница 1 из 1

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

Добавлено: 25 май 2015, 19:51
yura3d
Всем привет!

Переводя одно из своих приложений на модный нынче 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 динамически?

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

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

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

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