在android中的线性布局上膨胀xml

时间:2016-02-20 06:47:57

标签: android android-linearlayout layout-inflater android-inflate

我尝试用点解释我的问题。

  • 我在 xml_1 中有一个线性布局,其中包含按钮。
  • 我有一个 xml_2 ,其中包含textview和许多其他视图。
  • 我想在 xml_1的线性布局上充气 xml_2

我试过这个: - `

  LayoutInflater layoutInflater;
  View inflatedView;
  linear_layout=(LinearLayout)findViewById(R.id.linear_layout);//in xml_1

  layoutInflater=getLayoutInflater();
  inflatedView = layoutInflater.inflate(R.layout.xml_2, linear_layout, false);
  linear_layout.addView(inflatedView);

问题是xml_2在xml_1的linear_layout上膨胀,但是xml_1的linear_layout中已经存在的按钮没有被删除,而是在xml_1的linear_layout按钮右边添加了xml_2。

谢谢

2 个答案:

答案 0 :(得分:0)

如果要替换linear_layout的内容,请在充气后执行此操作:

linear_layout.removeAllViews();

然后您可以为其添加新视图。

答案 1 :(得分:0)

您的问题可能是因为您从xml_1为LinearLayout设置了方向。正如你所说,

  

而是在xml_1的linear_layout按钮右侧添加了xml_2。

这可能是因为您的LinearLayout有android:orientation="horizontal",所以当您addView时,它会根据您的方向添加。

如果要在xml_1中添加xml_2并且xml_2位于xml_1中的按钮下,请在其中包含另一个LinearLayout:

<!--Inflate your views and put them inside this one-->
<LinearLayout
    android:width="match_parent"
    android:height="wrap_content
    android:orientation="vertical">
    <LinearLayout
         android:width="match_parent"
         android:height="wrap_content
         android:orientation="horizontal">
    </LinearLayout>
</LinearLayout>

这样,你的xml_2将在你已经在LinearLayout中拥有的视图之下。

我不确定这是你想要的,如果它是其他的东西,请进一步评论。