2015-11-11 126 views
1

我一直試圖多次,我似乎無法修復我的佈局。有什麼辦法可以實現這個目標?Android佈局動態添加兒童佈局

上面的圖像是有1個孩子和2個孩子時發生的事情。 下圖是我想要實現的。

Here are the images

這是我父母的xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/parent" 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/height" 
    android:orientation="horizontal"> 

    <RelativeLayout 
     android:id="@+id/flow_container" 
     android:layout_width="match_parent" 
     android:layout_height="title_container_height" 
     android:gravity="center_vertical"> 
     <TextView 
      android:id="@+id/flow_title" 
      style="@style/TileTitle" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      tools:text="TEXT" /> 
    </RelativeLayout> 

    <LinearLayout 
     android:id="@+id/linear_layout" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:layout_gravity="center_horizontal" 
     android:orientation="vertical"> 
    </LinearLayout> 
</RelativeLayout> 

這裏是我動態

<LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:id="@+id/primary_icon_section" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:gravity="center" 
     android:orientation="vertical"> 
    <ImageView 
      android:id="@+id/primary_icon" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:paddingBottom="@dimen/small" 
      android:paddingTop="@dimen/small"/> 
    <TextView 
      android:id="@+id/primary_sub_text" 
      style="@style/Style" 
      android:layout_width="wrap_content" 
      android:layout_height="18dp" 
      android:layout_below="@+id/primary_icon" 
      android:layout_gravity="center_horizontal" 
      android:textColor="@color/white" 
      tools:text="Primary sub text"/> 
</LinearLayout> 

下面將我的孩子XML是我怎麼添加子佈局:

LinearLayout linearLayout = (LinearLayout)parent.findViewById(R.id.linear_layout); 
linearLayout.addView(childView); 

回答

0

您的父母linearlayout ID爲linear_layout設置爲垂直方向,因此您的子視圖將從上到下排列。

試着改變你的孩子的XML

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/primary_icon_section" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:layout_weight="1" 
    android:orientation="vertical"> 
<ImageView 
     android:id="@+id/primary_icon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:paddingBottom="@dimen/small" 
     android:paddingTop="@dimen/small"/> 
<TextView 
     android:id="@+id/primary_sub_text" 
     style="@style/Style" 
     android:layout_width="wrap_content" 
     android:layout_height="18dp" 
     android:layout_gravity="center_horizontal" 
     android:textColor="@color/white" 
     tools:text="Primary sub text"/> 
</LinearLayout> 

和你parent.xml作爲

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/parent" 
android:layout_width="match_parent" 
android:layout_height="@dimen/height" 
android:orientation="horizontal"> 

<RelativeLayout 
    android:id="@+id/flow_container" 
    android:layout_width="match_parent" 
    android:layout_height="title_container_height" 
    android:gravity="center_vertical"> 
    <TextView 
     android:id="@+id/flow_title" 
     style="@style/TileTitle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     tools:text="TEXT" /> 
</RelativeLayout> 

<LinearLayout 
    android:id="@+id/linear_layout" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true" 
    android:layout_gravity="center_horizontal" 
    android:orientation="horizontal"> 
</LinearLayout> 
</RelativeLayout> 
+0

非常感謝!試過了,它工作! – grassJava

+0

很高興我能幫忙.. :) –

0

你需要做兩件事情,實現自己的目標:

  1. 更改LinearLayoutorientationverticalhorizontal,使添加方向我對吧。
  2. 更換您的孩子LinearLayoutwidth0dp並將其layout_weight更改爲1

希望能幫到你。