Search code examples
androidandroid-layoutandroid-scrollview

I cant reach for the last element in my layout via scrollView


I am working on an android app, and now I am putting a simple form in the dialog box this form I wanna used for address info, and it has multi-element.

the layout for the dialog has scrollView.

the scrollView is existing and I can scroll up and down but I can't scroll down to reach for the last item in my layout.

My layout:

<LinearLayout android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:background="@color/white"
    android:padding="24dp">
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_marginTop="40dp"
        android:scrollbars="vertical"
        android:scrollbarAlwaysDrawVerticalTrack="true">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/address"
            android:padding="8dp"
            android:textColor="@color/colorPrimaryDark"
            android:textStyle="bold"
            android:gravity="center_horizontal"/>
                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="@string/post_code"
                    android:padding="8dp"
                    android:layout_marginTop="10dp"
                    android:textColor="@color/colorPrimaryDark"/>
                <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:weightSum="1"
                android:background="@drawable/stork_wo">
                <EditText
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:maxLines="1"
                    android:inputType="textPostalAddress"
                    android:ems="10"
                    android:hint="@string/post_code"
                    android:id="@+id/etPostCode"
                    android:textColorHint="@color/colorPrimary"
                    android:textColor="@color/colorPrimaryDark"
                    android:layout_weight="0.9"
                    android:padding="8dp"
                    android:layout_margin="1dp"
                    android:background="@color/white"/>

                <Button
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:background="@android:color/transparent"
                    android:drawableEnd="@drawable/search"
                    android:drawableRight="@drawable/search"
                    android:drawablePadding="8dp"
                    android:padding="8dp"
                    android:id="@+id/btnSearch"
                    android:drawableTint="@color/colorPrimary"
                    android:layout_weight="0.1"/>

                </LinearLayout>

                <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/select_an_address"
                android:padding="8dp"
                android:layout_marginTop="10dp"
                android:textColor="@color/colorPrimaryDark"
                android:textColorHint="@color/colorPrimary" />

                <Spinner
                android:id="@+id/spinner1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:drawSelectorOnTop="true"
                android:layout_marginTop="10dp"
                android:padding="8dp"
                android:entries="@array/array_empty"
                android:textColor="@color/colorPrimaryDark" />
                <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/flat_number"
                android:padding="8dp"
                android:layout_marginTop="10dp"
                android:textColor="@color/colorPrimaryDark"/>
                <EditText
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:maxLines="1"
                android:inputType="number"
                android:ems="10"
                android:background="@drawable/stork_wo"
                android:padding="8dp"
                android:id="@+id/etFlatNumber"
                android:hint="@string/flat_num_example"
                android:textColor="@color/colorPrimaryDark"
                android:textColorHint="@color/colorPrimary" />

                <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/address2"
                android:padding="8dp"
                android:layout_marginTop="10dp"
                android:textColor="@color/colorPrimaryDark"/>
                <EditText
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:maxLines="1"
                android:inputType="text"
                android:ems="10"
                android:background="@drawable/stork_wo"
                android:padding="8dp"
                android:id="@+id/etAddress2"
                android:hint="@string/address2_example"
                android:textColor="@color/colorPrimaryDark"
                android:textColorHint="@color/colorPrimary" />

                <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/town"
                android:padding="8dp"
                android:layout_marginTop="10dp"
                android:textColor="@color/colorPrimaryDark"/>
                <EditText
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:maxLines="1"
                android:inputType="text"
                android:ems="10"
                android:background="@drawable/stork_wo"
                android:padding="8dp"
                android:id="@+id/etTown"
                android:hint="@string/town_example"
                android:textColor="@color/colorPrimaryDark"
                android:textColorHint="@color/colorPrimary" />

                <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/city"
                android:padding="8dp"
                android:layout_marginTop="10dp"
                android:textColor="@color/colorPrimaryDark"/>
                <EditText
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:maxLines="1"
                android:inputType="text"
                android:ems="10"
                android:background="@drawable/stork_wo"
                android:padding="8dp"
                android:id="@+id/etCity"
                android:hint="@string/town_example"
                android:textColorHint="@color/colorPrimary"
                android:textColor="@color/colorPrimaryDark" />

        <Button
            android:id="@+id/btnNext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/button"
            android:text="@string/save"
            android:textAllCaps="false"
            android:textColor="@color/white"
            android:textSize="18sp"
            android:gravity="center"
            android:paddingTop="2dp"
            android:layout_marginTop="8dp"
            />
        <Button
            android:id="@+id/btnCancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/button"
            android:text="@string/cancel"
            android:textAllCaps="false"
            android:textColor="@color/white"
            android:textSize="18sp"
            android:gravity="center"
            android:paddingTop="2dp"
            android:layout_marginTop="8dp" />

    </LinearLayout>

    </ScrollView>

</LinearLayout>

I don't know what I missed!

any Help please?

and thanks


Solution

  • Just replace ScrollView with NestedScrollView, as you used Spinner inside the ScrollView which has own scroll view.

    Here is changed Xml Code

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:background="@color/white"
    android:padding="24dp">
    <androidx.core.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_marginTop="40dp"
            android:scrollbars="vertical"
            android:scrollbarAlwaysDrawVerticalTrack="true">
    
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/address"
                android:padding="8dp"
                android:textColor="@color/colorPrimaryDark"
                android:textStyle="bold"
                android:gravity="center_horizontal"/>
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/post_code"
                android:padding="8dp"
                android:layout_marginTop="10dp"
                android:textColor="@color/colorPrimaryDark"/>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:weightSum="1"
                android:background="@drawable/stork_wo">
                <EditText
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:maxLines="1"
                    android:inputType="textPostalAddress"
                    android:ems="10"
                    android:hint="@string/post_code"
                    android:id="@+id/etPostCode"
                    android:textColorHint="@color/colorPrimary"
                    android:textColor="@color/colorPrimaryDark"
                    android:layout_weight="0.9"
                    android:padding="8dp"
                    android:layout_margin="1dp"
                    android:background="@color/white"/>
    
                <Button
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:background="@android:color/transparent"
                    android:drawableEnd="@drawable/search"
                    android:drawableRight="@drawable/search"
                    android:drawablePadding="8dp"
                    android:padding="8dp"
                    android:id="@+id/btnSearch"
                    android:drawableTint="@color/colorPrimary"
                    android:layout_weight="0.1"/>
    
            </LinearLayout>
    
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/select_an_address"
                android:padding="8dp"
                android:layout_marginTop="10dp"
                android:textColor="@color/colorPrimaryDark"
                android:textColorHint="@color/colorPrimary" />
    
            <Spinner
                android:id="@+id/spinner1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:drawSelectorOnTop="true"
                android:layout_marginTop="10dp"
                android:padding="8dp"
                android:entries="@array/array_empty"
                android:textColor="@color/colorPrimaryDark" />
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/flat_number"
                android:padding="8dp"
                android:layout_marginTop="10dp"
                android:textColor="@color/colorPrimaryDark"/>
            <EditText
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:maxLines="1"
                android:inputType="number"
                android:ems="10"
                android:background="@drawable/stork_wo"
                android:padding="8dp"
                android:id="@+id/etFlatNumber"
                android:hint="@string/flat_num_example"
                android:textColor="@color/colorPrimaryDark"
                android:textColorHint="@color/colorPrimary" />
    
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/address2"
                android:padding="8dp"
                android:layout_marginTop="10dp"
                android:textColor="@color/colorPrimaryDark"/>
            <EditText
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:maxLines="1"
                android:inputType="text"
                android:ems="10"
                android:background="@drawable/stork_wo"
                android:padding="8dp"
                android:id="@+id/etAddress2"
                android:hint="@string/address2_example"
                android:textColor="@color/colorPrimaryDark"
                android:textColorHint="@color/colorPrimary" />
    
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/town"
                android:padding="8dp"
                android:layout_marginTop="10dp"
                android:textColor="@color/colorPrimaryDark"/>
            <EditText
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:maxLines="1"
                android:inputType="text"
                android:ems="10"
                android:background="@drawable/stork_wo"
                android:padding="8dp"
                android:id="@+id/etTown"
                android:hint="@string/town_example"
                android:textColor="@color/colorPrimaryDark"
                android:textColorHint="@color/colorPrimary" />
    
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/city"
                android:padding="8dp"
                android:layout_marginTop="10dp"
                android:textColor="@color/colorPrimaryDark"/>
            <EditText
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:maxLines="1"
                android:inputType="text"
                android:ems="10"
                android:background="@drawable/stork_wo"
                android:padding="8dp"
                android:id="@+id/etCity"
                android:hint="@string/town_example"
                android:textColorHint="@color/colorPrimary"
                android:textColor="@color/colorPrimaryDark" />
    
            <Button
                android:id="@+id/btnNext"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/button"
                android:text="@string/save"
                android:textAllCaps="false"
                android:textColor="@color/white"
                android:textSize="18sp"
                android:gravity="center"
                android:paddingTop="2dp"
                android:layout_marginTop="8dp"
                />
            <Button
                android:id="@+id/btnCancel"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/button"
                android:text="@string/cancel"
                android:textAllCaps="false"
                android:textColor="@color/white"
                android:textSize="18sp"
                android:gravity="center"
                android:paddingTop="2dp"
                android:layout_marginTop="8dp" />
    
        </LinearLayout>
    
    </androidx.core.widget.NestedScrollView>
    
    </LinearLayout>
    

    Hope, it works for you!!!