Android - LinearLayout in ScrollView in Relativelayout
Solution 1
Ok, I've made it. All I had to do is setting LinearLayout that is inside of ScrollView to
layout_width="wrap_content"
layout_gravity="center_horizontal"
android:orientation="vertical"
The ScrollView to
layout_width="fill_parent"
layout_gravity="center_horizontal"
layout_height="wrap_content"
And at the end I've put that ScrollView into new LinearLayout with parameters as following:
layout_width="fill_parent"
layout_height="fill_parent"
gravity="center_vertical"
orientation="vertical"
So the ScrollView and it's child Layout are setting buttons center horizontaly and the outer LinearLayout is setting them center verticaly. :-)
Solution 2
Try changing the layout_width
of lin2
to wrap_content
instead of fill_parent
.
Seraphis
Updated on June 04, 2022Comments
-
Seraphis almost 2 years
I have a little problem with layouts. I have made RelativeLayout in which I put two LinearLayouts (1 and 2) and between them ScrollView with LinearLayout. Next I set that ScrollView to be placed under linearLayout2 and above linearLayout1. But LinearLayout inside that ScrollView isn't set as it's parent.
Here's the code, maybe I've made a mistake:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="6dip" android:layout_alignParentTop="true" android:id="@+id/lin1" android:layout_weight="1"> </LinearLayout> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_alignParentBottom="true" android:layout_weight="1" android:id="@+id/lin3" android:layout_height="60dip"> </LinearLayout> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:scrollbars="horizontal" android:layout_below="@id/lin1" android:layout_above="@id/lin3" android:id="@+id/ScrollView"> <LinearLayout android:layout_width="fill_parent" android:orientation="vertical" android:id="@+id/lin2" android:layout_height="fill_parent" android:layout_gravity="center_vertical|center_horizontal"> <Button android:text="@string/button1" android:id="@+id/button1" android:layout_gravity="center" android:layout_width="280dip" android:layout_height="60dip"> </Button> <Button android:text="@string/button2" android:id="@+id/button2" android:layout_gravity="center" android:layout_width="280dip" android:layout_height="60dip"> </Button> <Button android:text="@string/button3" android:id="@+id/button3" android:layout_gravity="center" android:layout_width="280dip" android:layout_height="60dip"> </Button> <Button android:text="@string/button4" android:id="@+id/button4" android:layout_gravity="center" android:layout_width="280dip" android:layout_height="60dip"> </Button> </LinearLayout> </ScrollView>
Any ideas, why LinearLayout inside of ScrollView is bigger than the ScrollView?
EDIT: So far I've noticed that LinearLayout inside of ScrollView moves outside when I set layout_gravity="center_vertical". It looks like setting center refers to main layout (RelativeLayout).