Мне определили расположение в 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(...)
Но ни один из них не хорошо работал.
Я не уверен, что понял ваш вопрос - вы пытаетесь прикрепить дочернее представление к RelativeLayout? Если да, то вы хотите сделать что-то вроде:
RelativeLayout item = (RelativeLayout)findViewById(R.id.item);
View child = getLayoutInflater().inflate(R.layout.child, null);
item.addView(child);
Вы раздуваете 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);
] К этому полезно добавить, даже если это старый пост, что если дочернее представление, которое раздувается из xml, должно быть добавлено в макет группы просмотра, вам нужно вызвать inflate с подсказкой о том, какой тип группы просмотра это будет добавлен в. Например:
View child = getLayoutInflater().inflate(R.layout.child, item, false);
Метод inflate довольно перегружен и описывает эту часть использования в документации. У меня была проблема, когда одно представление, созданное из xml, не выравнивалось должным образом в родительском элементе, пока я не внес изменения этого типа.