Android: stretching between two fixed LinearLayouts

this is my layout (image):

http://i.imgur.com/j8sqo.jpg


What I want to do is make 1st LinearLayout 50dip high (this is already normal), and then 3rd LinearLayout also 50dip from bottom to top, and then make a second LinearLayout fill the remaining space between them. How to do it?


This is my XML:

<LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="50dip" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" > </LinearLayout> <LinearLayout android:id="@+id/linearLayout2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_below="@+id/linearLayout1" android:orientation="vertical" > <ViewFlipper android:id="@+id/viewFlipper1" android:layout_width="match_parent" android:layout_height="fill_parent" > <ImageView android:id="@+id/imageView1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/rain1" /> <ImageView android:id="@+id/imageView2" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/thunder1" /> </ViewFlipper> </LinearLayout> <LinearLayout android:id="@+id/linearLayout3" android:layout_width="fill_parent" android:layout_height="50dip" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_below="@+id/linearLayout2"> </LinearLayout> </RelativeLayout> 
+4
source share
6 answers

Wrap all three layouts in a vertical linear layout and use layout layout "1" on the middle layout:

 <LinearLayout . . . android:layout_height="fill_parent" android:orientation="vertical"> <LinearLayout . . . android:layout_height="50dip"> <LinearLayout . . . android:layout_height="0dp" android:layout_weight="1"> <LinearLayout . . . android:layout_height="50dip"> </LinearLayout> 
+16
source

Convert LinearLayout to relative layout. determine the relative position of the element. Your problem will be solved.

Or use the weight in a linear layout. define a weight of 1.0 for the second line layout. And for the top size and height of the parent layout should be fill_parent

+1
source

Try the following:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:layout_width="fill_parent" android:layout_height="50dip" android:background="#FF00FF" android:id="@+id/first" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="50dip" android:background="#0000FF" android:id="@+id/last" android:layout_alignParentBottom="true" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#FFFFFF" android:layout_above="@id/last" android:layout_below="@id/first" > <ViewFlipper android:id="@+id/viewFlipper1" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ImageView android:id="@+id/imageView1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/rain1" /> <ImageView android:id="@+id/imageView2" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/thunder1" /> </ViewFlipper> </LinearLayout> </RelativeLayout> 
+1
source
 LinearLayout layout; layout.addView(child, 2); 
0
source

try to put the 3rd layout before the second.

 <Relativelayout> <Linearlayout1> <Linearlayout3> <linearlayout2> </Relativelayout> 
0
source

I have not added your drawings to this code, but I believe that this should solve your problem:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/relativeLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="50dp" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" > </LinearLayout> <LinearLayout android:id="@+id/linearLayout2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_below="@+id/linearLayout1" android:layout_above="@+id/linearLayout3" android:orientation="vertical" > <ViewFlipper android:id="@+id/viewFlipper1" android:layout_width="match_parent" android:layout_height="fill_parent" > <ImageView android:id="@+id/imageView1" android:layout_width="fill_parent" android:layout_height="fill_parent" /> <ImageView android:id="@+id/imageView2" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </ViewFlipper> </LinearLayout> <LinearLayout android:id="@+id/linearLayout3" android:layout_width="fill_parent" android:layout_height="50dp" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" > </LinearLayout> </RelativeLayout> 
0
source

Source: https://habr.com/ru/post/1394165/


All Articles