问题
In My application XML layout, I have one Relativelayout, In which there are two linear Layout. Now I am doing the animation for that both layout. But because thera seems the height different I got some view problem.
So I want to make the same height of the both layout. Below is my XML file.
<!-- ============================================================= -->
<!-- BOTTLE / PEN LAYOUT -->
<!-- ============================================================= -->
<LinearLayout android:layout_height="wrap_content"
android:layout_width="fill_parent" >
<RelativeLayout android:layout_height="wrap_content"
android:layout_width="fill_parent">
<!-- ============================================================= -->
<!-- PEN LAYOUT -->
<!-- ============================================================= -->
<LinearLayout android:orientation="vertical"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/pen_layout">
<TextView
android:text="EF"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:textColor="#000000"
android:layout_marginTop="2dp"
android:textSize="10sp"/>
<ImageView
android:id="@+id/save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:src="@drawable/ink_pen"/>
<TextView
android:text="F"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:textColor="#000000"
android:layout_marginTop="2dp"
android:textSize="10sp"/>
<ImageView
android:id="@+id/save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:src="@drawable/ink_pen"/>
<TextView
android:text="BOLD"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:textColor="#000000"
android:layout_marginTop="2dp"
android:textSize="10sp"/>
<ImageView
android:id="@+id/save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:src="@drawable/ink_pen"/>
<TextView
android:text="ITALIC"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:textColor="#000000"
android:layout_marginTop="2dp"
android:textSize="10sp"/>
<ImageView
android:id="@+id/save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:src="@drawable/ink_pen"/>
</LinearLayout>
<!-- ============================================================= -->
<!-- BOTTLE LAYOUT -->
<!-- ============================================================= -->
<LinearLayout android:orientation="vertical"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:weightSum="4"
android:id="@+id/bottle_layout">
<!-- First Row Bottle -->
<LinearLayout android:orientation="horizontal"
android:layout_height="wrap_content" android:layout_weight="1"
android:layout_width="fill_parent" android:weightSum="2">
<ImageView android:layout_height="wrap_content" android:layout_weight="1"
android:layout_width="wrap_content" android:src="@drawable/purple_bottle"/>
<ImageView android:layout_height="wrap_content" android:layout_weight="1"
android:layout_width="wrap_content" android:src="@drawable/red_bottle"/>
</LinearLayout>
<!-- Second Row Bottle -->
<LinearLayout android:orientation="horizontal"
android:layout_height="wrap_content" android:layout_weight="1"
android:layout_width="fill_parent" android:weightSum="2">
<ImageView android:layout_height="wrap_content" android:layout_weight="1"
android:layout_width="wrap_content" android:src="@drawable/gray_bottle"/>
<ImageView android:layout_height="wrap_content" android:layout_weight="1"
android:layout_width="wrap_content" android:src="@drawable/green_bottle"/>
</LinearLayout>
<!-- Third Row Bottle -->
<LinearLayout android:orientation="horizontal"
android:layout_height="wrap_content" android:layout_weight="1"
android:layout_width="fill_parent" android:weightSum="2">
<ImageView android:layout_height="wrap_content" android:layout_weight="1"
android:layout_width="wrap_content" android:src="@drawable/orange_bottle"/>
<ImageView android:layout_height="wrap_content" android:layout_weight="1"
android:layout_width="wrap_content" android:src="@drawable/blue_bottle"/>
</LinearLayout>
<!-- Forth Row Bottle -->
<LinearLayout android:orientation="horizontal"
android:layout_height="wrap_content" android:layout_weight="1"
android:layout_width="fill_parent" android:weightSum="2">
<ImageView android:layout_height="wrap_content" android:layout_weight="1"
android:layout_width="wrap_content" android:src="@drawable/black_bottle"/>
<ImageView android:layout_height="wrap_content" android:layout_weight="1"
android:layout_width="wrap_content" android:src="@drawable/white_bottle"/>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
回答1:
Delete the containing RelativeLayout (since it is the only child of your root LinearLayout you don't strictly need it) or change it to a LinearLayout.
Then for both the Pen layout and the bottle layout, add the attribute android:layout_weight and set them both to 1.
Make sure that both the layouts have the height set to MATCH_PARENT
Now your two layouts should share the space equally between them, thus making them the same height.
To share the space equally between the children of the Pen and Bottle layouts, I suggest that you set the height of each child to WRAP_CONTENT and the layout_weight of each child to 1.
来源:https://stackoverflow.com/questions/8295556/how-to-make-two-different-layout-to-have-same-height