addView到膨胀的LinearLayout

时间:2014-10-13 09:50:04

标签: android android-view layout-inflater

我正在尝试向Layout添加LinaerLayout。在第一次创建我的视图时,布局很好地添加,这意味着inflate和addView运行良好。但是当我单击一个按钮再次执行该过程并再次添加相同的视图时,它会起作用,但视图会添加到第一个视图之上。

碎片:

 // onCreateView, I bind the container with his LinearLayout
 mLnPricing = (ViewGroup) mRootView.findViewById(R.id.lnPricing);

 //some stuff

 private void createPriceBlock() {

    mParent = LayoutInflater.from(getActivity()).inflate(
            R.layout.block_pricing, null);
    //binding some views
    mIbAddPricing.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            createPriceBlock();
        }
    });
    mLnPricing.addView(mParent,0);
}

block_pricing.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

//some text fields

</LinearLayout>

main_lauyout.xml:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

//some controllers

    <LinearLayout
        android:id="@+id/lnPricing"
        style="@style/addLabels.AppTheme"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp" />




</ScrollView>

我不知道我的代码有什么问题但是出于某种奇怪的原因,相同的代码正在处理另一个项目。

我的期望:在位置0添加新视图并向下移动其他视图。

我拥有的内容:视图将添加到预览之一,并在视图下方创建一个空白区域

1 个答案:

答案 0 :(得分:1)

LinearLayout的默认方向是水平的。您尚未指定要添加新视图的LinearLayout的方向,因此旧视图将在屏幕外推向右侧。将android:orientation="vertical"添加到lnPricing LinearLayout标记。