我有一个用XML定义的布局。它还包括:

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

我想用其他XML布局文件来膨胀这个RelativeView。我可能会根据情况使用不同的布局。我该怎么做呢?我尝试了不同的变化

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

但没有一个运行良好。


当前回答

更简单的方法是使用

View child = View.inflate(context, R.layout.child, null)
item.addChild(child) //attach to your item

其他回答

更简单的方法是使用

View child = View.inflate(context, R.layout.child, null)
item.addChild(child) //attach to your item

如果你想多次添加一个视图,那么你必须使用

   layoutInflaterForButton = getActivity().getLayoutInflater();

 for (int noOfButton = 0; noOfButton < 5; noOfButton++) {
        FrameLayout btnView = (FrameLayout) layoutInflaterForButton.inflate(R.layout.poll_button, null);
        btnContainer.addView(btnView);
    }

如果你喜欢

   layoutInflaterForButton = getActivity().getLayoutInflater();
    FrameLayout btnView = (FrameLayout) layoutInflaterForButton.inflate(R.layout.poll_button, null);

and

for (int noOfButton = 0; noOfButton < 5; noOfButton++) {
            btnContainer.addView(btnView);
        }

然后它将抛出所有已添加视图的异常。

attachtorroot设置为True

假设我们在XML布局文件中指定了一个按钮,将其布局宽度和布局高度设置为match_parent。

<Button xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/custom_button">
</Button>

在此按钮上单击事件,我们可以设置以下代码来膨胀此活动的布局。

LayoutInflater inflater = LayoutInflater.from(getContext());
inflater.inflate(R.layout.yourlayoutname, this);

希望这个方法对你有用。

如果你试图将子视图附加到RelativeLayout?你可以照着做

RelativeLayout item = (RelativeLayout)findViewById(R.id.item);
View child = getLayoutInflater().inflate(R.layout.child, item, true);

试试下面的代码:

如果你只是想扩大你的布局:

View View = LayoutInflater.from(context). inflation (r.b ayout.your_xml_layout,null);//扩展xml布局的代码 RelativeLayout item = view.findViewById(R.id.item);

如果你想在容器中膨胀布局(父布局):

LinearLayout父= findViewById(R.id.container);/ /父布局。 View View = LayoutInflater.from(context). inflation (r.b ayout.your_xml_layout,parent,false); RelativeLayout item = view.findViewById(R.id.item);//初始化布局&通过这个你也可以执行任何事件。 parent.addView(查看);//在父布局中添加膨胀布局。