Как расширить одно представление с расположением

Мне определили расположение в XML. Это содержит также:

<RelativeLayout
    android:id="@+id/item"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
/>

Я хотел бы расширить этот RelativeView с другим файлом расположения XML. Я могу использовать различные разметки в зависимости от ситуации. Как я должен сделать это? Я пробовал различные изменения

RelativeLayout item = (RelativeLayout) findViewById(R.id.item);
item.inflate(...)

Но ни один из них не хорошо работал.

212
задан Jeb_is_a_mess 19 June 2017 в 21:49
поделиться

3 ответа

Я не уверен, что понял ваш вопрос - вы пытаетесь прикрепить дочернее представление к RelativeLayout? Если да, то вы хотите сделать что-то вроде:

RelativeLayout item = (RelativeLayout)findViewById(R.id.item);
View child = getLayoutInflater().inflate(R.layout.child, null);
item.addView(child);
378
ответ дан 23 November 2019 в 04:29
поделиться

Вы раздуваете XML-ресурс. См. документ LayoutInflater doc .

Если ваш макет находится в mylayout.xml, вы делаете что-то вроде:

View view; 
LayoutInflater inflater = (LayoutInflater)   getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
view = inflater.inflate(R.layout.mylayout, null);

RelativeLayout item = (RelativeLayout) view.findViewById(R.id.item);
102
ответ дан 23 November 2019 в 04:29
поделиться

] К этому полезно добавить, даже если это старый пост, что если дочернее представление, которое раздувается из xml, должно быть добавлено в макет группы просмотра, вам нужно вызвать inflate с подсказкой о том, какой тип группы просмотра это будет добавлен в. Например:

View child = getLayoutInflater().inflate(R.layout.child, item, false);

Метод inflate довольно перегружен и описывает эту часть использования в документации. У меня была проблема, когда одно представление, созданное из xml, не выравнивалось должным образом в родительском элементе, пока я не внес изменения этого типа.

18
ответ дан 23 November 2019 в 04:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: