Android: добавление представления к определенному макету из кода - PullRequest
23 голосов
/ 13 августа 2010

Я хочу динамически добавить некоторые представления к LinearLayout, который уже определен в XML.

Я могу добавить представления на экран, но они не помещаются «внутри» справа LinearLayout.

Как получить ссылку на этот конкретный макет из кода, аналогично получению View с использованием findViewById()?

Ответы [ 3 ]

44 голосов
/ 13 августа 2010

Как отметил Маркарс, вы можете сделать

ViewGroup layout = (ViewGroup) findViewById(R.id.your_layout_id);
TextView tv = new TextView(this);
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
tv.setText("Added tv");
layout.addView(tv);

Класс LinearLayout расширяет ViewGroup , который сам расширяет класс View.Это делает получение ссылки на макет столь же простым, как получение ссылки на другой вид.

21 голосов
/ 13 августа 2010

Это должно работать:

LinearLayout layout = (LinearLayout) findViewById(R.id.your_layout_id);
TextView tv = new TextView(this);
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
tv.setText("Added tv");
layout.addView(tv);
0 голосов
/ 06 июня 2017

Лучшая версия: Чтобы добавить другой макет в упражнении / Фрагмент

LayoutInflater mInflater = LayoutInflater.from(getActivity());
View mProgressBarFooter = mInflater.inflate(R.layout.spinner, null, false);
textLoader = (TextView) mProgressBarFooter.findViewById(R.id.footer_label);

Happy Coding (-:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...