Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Place a block at the center of a ScrollView

I have a ScrollView that contains a single child (elements wrapped by a LinearLayout). Sometime this child's height is half of the viewport's height, sometime it is bigger.

Here the layout :

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:paddingBottom="10dp"
    android:paddingTop="10dp"
    android:background="@color/some_background">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:background="@drawable/fond_consult"
        android:orientation="vertical"
        android:weightSum="2">

        ... Some TextViews and ImageViews...

    </LinearLayout>
</ScrollView>

When the screen size and density is low, the child is correctly displayed in the ScrollView, but when rendering this activity on a bigger screen like HDPI and XHDPI, the content is placed at the top of the ScrollView.

Is there any way to set gravity for the sole child of the ScrollView, or do I have to delete the scrollView if the device screen is bigger than the measered height of the child ?

like image 693
Jerec TheSith Avatar asked Dec 06 '22 12:12

Jerec TheSith


1 Answers

What you can do is try adding android:layout_gravity="center" to ScrollView with its layout_width and layout_height as wrap_content. As ScrollView manages itself to the height and width of its child layouts.

like image 142
Lalit Poptani Avatar answered Feb 15 '23 05:02

Lalit Poptani