У меня есть несколько макетов скелета, как это:Программных включают макет в Android (тиражирование <include/> тега
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
...
</merge>
мне нужно обернуть этот макет в LinearLayout, но не хочу, чтобы сделать несколько файлов XML, так как они 'D просто есть LinearLayout и включают тег, как это ...
<LinearLayout
<include layout="@layout/layout1"
</LinearLayout>
есть ли способ, что я могу достичь того же эффекта, что и @ макет/Layout1 программно? как выбрать макет включить? Я m раздувать этот макет для ViewHolder в режиме recyclervie w, и сейчас я это делаю.
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
ViewHolder vh = null;
View inflatedView;
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
switch (x) {
case 1:
inflatedView = inflater.inflate(R.layout.cool_layout, parent, false);
inflater.inflate(R.layout.layout1, (LinearLayout)inflatedView, true);
vh = new ViewHolder(inflatedView);
case 2:
inflatedView = inflater.inflate(R.layout.cool_layout, parent, false);
inflater.inflate(R.layout.layout2, (LinearLayout)inflatedView, true);
vh = new ViewHolder(inflatedView);
Это делает два Inflate() вызывает, которые, вероятно, не является хорошей идеей, поэтому я ищу альтернативу в стороне от создания кучу XML-файлов.