如何以编程方式在LinearLayout中创建多个RelativeLayouts(使用现有的xml布局)?

时间:2014-12-18 10:19:37

标签: android android-layout android-linearlayout android-relativelayout

我想以编程方式将多个RelativeLayout放在一个LinearLayout中。而不是使用ListView。我的布局XML如下所示:

<RelativeLayout 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"
   android:background="@drawable/background_select_app" >

   <ScrollView
      android:id="@+id/scroller"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:background="#80000000" >

      <LinearLayout
         android:id="@+id/parent_linear_layout"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:orientation="vertical"
         android:background="#FFFFFF" >
      </LinearLayout>
   </ScrollView>    
</RelativeLayout>

以下是我想在LinearLayout中添加为子项的RelativeLayout:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="280dp"
   android:layout_height="40dp"
   android:background="@drawable/row"
   android:gravity="center" >

   <TextView
      android:id="@+id/name_name"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerInParent="true"
      android:textColor="#333333" />

</RelativeLayout>

我可以通过编程方式进行吗?提前谢谢。

2 个答案:

答案 0 :(得分:0)

尝试这样:

public void testgenerate() {

        LinearLayout rootLaout=findViewById(R.id.idofliner);
        LayoutInflater layoutInflater = getLayoutInflater();

        for(int i=0;i<10;i++){
            RelativeLayout inflate = (RelativeLayout) layoutInflater.inflate(R.layout.relativelayutid, null);
            rootLaout.addView(inflate);
        }
    }

答案 1 :(得分:0)

通常不需要在LinearLayout中嵌套RelativeLayout,只需一个RelativeLayout即可实现与Linearlayout相同(因此您的视图层次结构有一个布局少于遍历 - &gt;提高性能)或者如果您只是想要垂直/水平对齐元素而不是只使用一个LinearLayout而不是额外的RelativeLayout

我不确定你想做什么,但对我而言,听起来像您正在寻找的RecyclerView或ListView?