murkr
murkr

Reputation: 694

android: ScrollView cuts off the top

So I have a layout with a ScrollView. When I test my code, the ViewPager-heigth jumps from a reasonable value (1845) to very small (so fast the eye can't see). If I switch the layout_height of the ViewPager to wrap_content the height jumps to 0.

Aditionally, when the ViewPager has a heigth > 0, the top half of it is outside the Screen and only the bottom half is visible.

Clearly I'm doing something wrong here:

<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:background="@color/colorDeadBackground"
    android:fillViewport="true">

<LinearLayout
    android:layout_gravity="center"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:outlineProvider="bounds"
    android:orientation="vertical">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:orientation="vertical">
        <androidx.cardview.widget.CardView
            android:id="@+id/cardView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:elevation="2dp"
            app:cardCornerRadius="6dp">

        <androidx.viewpager.widget.ViewPager
            android:id="@+id/viewpager_pics"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

        <com.finder.ViewPagerIndicator.LinePageIndicator
            android:id="@+id/indicator"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:layout_marginTop="4dp"
            android:layout_marginStart="5dp"
            android:layout_marginEnd="5dp"
            app:strokeWidth="2dp"
            app:unselectedColor="#88888888"
            app:selectedColor="@color/colorWhite"/>

        </androidx.cardview.widget.CardView>
...

If I set the height to a fixed value (either programatically or in the xml) the problem persists, that only the top half of the ViewPager is seen. Even the preview Window says its only half on the screen:

enter image description here

Upvotes: 0

Views: 250

Answers (2)

murkr
murkr

Reputation: 694

To get rid of the weird offset thing (that the ViewPager starts obove the screen), I had to remove the android:layout_gravity="center" from the Linearlayout. No idea why, if someone explains that to me, that would be dope. Probably has soemthing to do, that I used android:layout_gravity="center" twice in the Linearlayout and in the CardView.

Then I still ahd to set the height of the ViewPager programatically, so that the height isn't 0. No idea why either, doesn't matter if I changed match_parent to wrap_content anywhere.

Upvotes: 0

ismail alaoui
ismail alaoui

Reputation: 6073

you are setting the CardView height and ViewPager height both on match_parent, which will cause an issue in visibitily , try to set a fixed size to height for both of them !

Upvotes: 1

Related Questions