Последний элемент в NestedScrollView с ConstraintLayout не отображается полностью

У меня проблемы с CoordinatorLayout и CollapsingToolbarLayout. На самом деле, когда я использую NestedScrollView. Я помещаю форму в NestedScrollView внутри ConstraintLayout. Последняя кнопка не отображается полностью (скрывается около 60dp внизу). Когда я нажимаю кнопку или редактирую текст, появляется последняя кнопка. Но не когда я запускаю приложение.

Я видел много вопросов, но нет идеального ответа. Некоторые говорили, что это ошибка или проблема с CoordinateLayout.

Вот полный код:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
tools:context=".MainActivity">

<android.support.design.widget.AppBarLayout
    android:id="@+id/appBarLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/ToolbarStyle">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsingToolbarLayout"
        android:layout_width="match_parent"
        android:layout_height="220dp"
        android:textAlignment="center"
        app:collapsedTitleGravity="start"
        app:collapsedTitleTextAppearance="@style/CollapsedAppBar"
        app:contentScrim="#12CCD8"
        app:expandedTitleGravity="center_horizontal|bottom"
        app:expandedTitleMarginBottom="10dp"
        app:expandedTitleTextAppearance="@style/ExpandedAppBar"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"
        app:title="Please Fill Form Carefully">

        <ImageView
            android:id="@+id/imageViewCollapsing"
            android:layout_width="match_parent"
            android:layout_height="180dp"
            android:scaleType="fitXY"
            android:src="@drawable/az_banner"
            app:layout_collapseMode="parallax" />


        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:minHeight="?attr/actionBarSize" />
    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <android.support.constraint.ConstraintLayout
        android:id="@+id/form_main_constraint"
        android:layout_width="match_parent"
        android:layout_height="match_parent">


        <TextView
            android:id="@+id/form_heading"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:layout_marginEnd="8dp"
            android:background="@drawable/bottom_line_shape"
            android:gravity="center"
            android:padding="5dp"
            android:paddingLeft="5dp"
            android:text="Buyer's Information"
            android:textColor="@color/black"
            android:textSize="24sp"
            android:textStyle="bold"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintVertical_bias="0.0" />


        <android.support.design.widget.TextInputLayout
            android:id="@+id/text_input_name"
            style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
            android:layout_width="match_parent"
            android:layout_height="69dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="12dp"
            android:layout_marginEnd="8dp"
            android:hint="Your Name"
            app:boxBackgroundColor="@color/fields_background"
            app:boxBackgroundMode="outline"
            app:boxCornerRadiusBottomEnd="6dp"
            app:boxCornerRadiusBottomStart="6dp"
            app:boxCornerRadiusTopEnd="6dp"
            app:boxCornerRadiusTopStart="6dp"
            app:boxStrokeColor="@color/azsite"
            app:errorEnabled="true"
            app:errorTextAppearance="@color/red"
            app:hintTextAppearance="@style/hint"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/form_heading">

            <android.support.design.widget.TextInputEditText
                android:id="@+id/name"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="text" />
        </android.support.design.widget.TextInputLayout>

        <android.support.design.widget.TextInputLayout
            android:id="@+id/text_input_email"
            style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
            android:layout_width="match_parent"
            android:layout_height="69dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="2dp"
            android:layout_marginEnd="8dp"
            android:hint="Your Email"
            app:boxBackgroundColor="@color/fields_background"
            app:boxBackgroundMode="outline"
            app:boxCollapsedPaddingTop="0dp"
            app:boxCornerRadiusBottomEnd="6dp"
            app:boxCornerRadiusBottomStart="6dp"
            app:boxCornerRadiusTopEnd="6dp"
            app:boxCornerRadiusTopStart="6dp"
            app:boxStrokeColor="@color/azsite"
            app:errorEnabled="true"
            app:errorTextAppearance="@color/red"
            app:hintTextAppearance="@style/hint"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/text_input_name">

            <android.support.design.widget.TextInputEditText
                android:id="@+id/email"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textEmailAddress" />
        </android.support.design.widget.TextInputLayout>

        <android.support.design.widget.TextInputLayout
            android:id="@+id/text_input_phone"
            style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
            android:layout_width="match_parent"
            android:layout_height="69dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="2dp"
            android:layout_marginEnd="8dp"
            android:hint="Phone Number"
            app:boxBackgroundColor="@color/fields_background"
            app:boxBackgroundMode="outline"
            app:boxCornerRadiusBottomEnd="6dp"
            app:boxCornerRadiusBottomStart="6dp"
            app:boxCornerRadiusTopEnd="6dp"
            app:boxCornerRadiusTopStart="6dp"
            app:boxStrokeColor="@color/azsite"
            app:errorEnabled="true"
            app:errorTextAppearance="@color/red"
            app:hintTextAppearance="@style/hint"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/text_input_email">

            <android.support.design.widget.TextInputEditText
                android:id="@+id/phone"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="phone" />
        </android.support.design.widget.TextInputLayout>

        <android.support.design.widget.TextInputLayout
            android:id="@+id/text_input_address"
            style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
            android:layout_width="match_parent"
            android:layout_height="69dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="2dp"
            android:layout_marginEnd="8dp"
            android:hint="Your Address"
            app:boxBackgroundColor="@color/fields_background"
            app:boxBackgroundMode="outline"
            app:boxCornerRadiusBottomEnd="6dp"
            app:boxCornerRadiusBottomStart="6dp"
            app:boxCornerRadiusTopEnd="6dp"
            app:boxCornerRadiusTopStart="6dp"
            app:boxStrokeColor="@color/azsite"
            app:errorEnabled="true"
            app:errorTextAppearance="@color/red"
            app:hintTextAppearance="@style/hint"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/text_input_phone">

            <android.support.design.widget.TextInputEditText
                android:id="@+id/address"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:autoSizeMinTextSize="8sp"
                android:inputType="text"
                android:maxLines="1"
                android:minLines="1" />
        </android.support.design.widget.TextInputLayout>

        <android.support.design.widget.TextInputLayout
            android:id="@+id/text_input_note"
            style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
            android:layout_width="match_parent"
            android:layout_height="69dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="2dp"
            android:layout_marginEnd="8dp"
            android:hint="Add Extra Note"
            app:boxBackgroundColor="@color/fields_background"
            app:boxBackgroundMode="outline"
            app:boxCornerRadiusBottomEnd="6dp"
            app:boxCornerRadiusBottomStart="6dp"
            app:boxCornerRadiusTopEnd="6dp"
            app:boxCornerRadiusTopStart="6dp"
            app:boxStrokeColor="@color/azsite"
            app:errorEnabled="true"
            app:errorTextAppearance="@color/red"
            app:hintTextAppearance="@style/hint"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/text_input_address">

            <android.support.design.widget.TextInputEditText
                android:id="@+id/note"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="text" />
        </android.support.design.widget.TextInputLayout>

        <android.support.v7.widget.CardView
            android:id="@+id/materialCardView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:layout_marginEnd="8dp"
            android:soundEffectsEnabled="true"
            app:cardBackgroundColor="@color/fields_background"
            app:cardCornerRadius="6dp"
            app:cardElevation="2dp"
            app:cardMaxElevation="2dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/text_input_note">

            <android.support.constraint.ConstraintLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent">

                <TextView
                    android:id="@+id/shipping_method"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@drawable/bottom_line_shape_2"
                    android:gravity="center"
                    android:padding="5dp"
                    android:text="Select Shipping Method            (Cash on Delivery)"
                    android:textColor="@color/black"
                    android:textSize="24sp"
                    android:textStyle="bold"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintHorizontal_bias="0.0"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent" />

                <RadioGroup
                    android:id="@+id/radio_group"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="8dp"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toBottomOf="@+id/shipping_method">

                    <RadioButton
                        android:id="@+id/tcs"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_margin="3dp"
                        android:layout_weight="1"
                        android:buttonTint="@color/azsite"
                        android:text="LCS-TCS-DAEWOO (200/dress-100/KG for next)" />

                    <RadioButton
                        android:id="@+id/non_cod"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_margin="3dp"
                        android:layout_weight="1"
                        android:buttonTint="@color/azsite"
                        android:text="NON-COD(100/KG)" />
                </RadioGroup>


            </android.support.constraint.ConstraintLayout>
        </android.support.v7.widget.CardView>

        <android.support.v7.widget.CardView
            android:id="@+id/bill_card"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:layout_marginEnd="8dp"
            android:soundEffectsEnabled="true"
            app:cardBackgroundColor="@color/fields_background"
            app:cardCornerRadius="6dp"
            app:cardElevation="2dp"
            app:cardMaxElevation="2dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/materialCardView">

            <android.support.constraint.ConstraintLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <TextView
                    android:id="@+id/amount"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@drawable/bottom_line_shape_2"
                    android:gravity="center"
                    android:padding="5dp"
                    android:text="Your Bill"
                    android:textColor="@color/black"
                    android:textSize="24sp"
                    android:textStyle="bold"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintHorizontal_bias="0.0"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent" />

                <android.support.constraint.ConstraintLayout
                    android:id="@+id/constraintLayout"
                    android:layout_width="match_parent"
                    android:layout_height="50dp"
                    android:layout_marginStart="8dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginEnd="8dp"
                    android:background="@drawable/bottom_line_shape_3"
                    app:layout_constraintBottom_toTopOf="@+id/constraintLayout2"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toBottomOf="@+id/amount">

                    <TextView
                        android:id="@+id/product_total"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_marginEnd="8dp"
                        android:gravity="center|start"
                        android:padding="3dp"
                        android:text="Product Total ="
                        android:textColor="@color/black"
                        android:textSize="22sp"
                        app:layout_constraintBottom_toBottomOf="parent"
                        app:layout_constraintEnd_toStartOf="@+id/product_total_prize"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintTop_toTopOf="parent" />

                    <TextView
                        android:id="@+id/product_total_prize"
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:background="@color/azsite"
                        android:gravity="center|left"
                        android:paddingLeft="3dp"
                        android:paddingRight="6dp"
                        android:text="0000"
                        android:textColor="@color/black"
                        android:textSize="22sp"
                        android:textStyle="bold"
                        app:layout_constraintBottom_toBottomOf="parent"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintTop_toTopOf="parent" />

                </android.support.constraint.ConstraintLayout>

                <android.support.constraint.ConstraintLayout
                    android:id="@+id/constraintLayout2"
                    android:layout_width="match_parent"
                    android:layout_height="50dp"
                    android:layout_marginStart="8dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginEnd="8dp"
                    android:background="@drawable/bottom_line_shape_3"
                    app:layout_constraintBottom_toTopOf="@+id/constraintLayout3"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintHorizontal_bias="0.0"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toBottomOf="@+id/constraintLayout">

                    <TextView
                        android:id="@+id/shipping_total"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_marginEnd="8dp"
                        android:gravity="center|start"
                        android:padding="3dp"
                        android:text="Shipping Total ="
                        android:textColor="@color/black"
                        android:textSize="22sp"
                        app:layout_constraintBottom_toBottomOf="parent"
                        app:layout_constraintEnd_toStartOf="@+id/shipping_total_price"
                        app:layout_constraintHorizontal_bias="0.0"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintTop_toTopOf="parent"
                        app:layout_constraintVertical_bias="0.0" />

                    <TextView
                        android:id="@+id/shipping_total_price"
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:background="@color/azsite"
                        android:gravity="center|left"
                        android:paddingLeft="3dp"
                        android:paddingRight="6dp"
                        android:text="0000"
                        android:textColor="@color/black"
                        android:textSize="22sp"
                        android:textStyle="bold"
                        app:layout_constraintBottom_toBottomOf="parent"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintTop_toTopOf="parent" />

                </android.support.constraint.ConstraintLayout>

                <android.support.constraint.ConstraintLayout
                    android:id="@+id/constraintLayout3"
                    android:layout_width="match_parent"
                    android:layout_height="50dp"
                    android:layout_marginStart="8dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginEnd="8dp"
                    android:layout_marginBottom="16dp"
                    android:background="@drawable/bottom_line_shape_3"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintHorizontal_bias="0.0"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toBottomOf="@+id/constraintLayout2">

                    <TextView
                        android:id="@+id/grand_total"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_marginEnd="8dp"
                        android:gravity="center|start"
                        android:padding="3dp"
                        android:text="Total ="
                        android:textColor="@color/black"
                        android:textSize="22sp"
                        app:layout_constraintBottom_toBottomOf="parent"
                        app:layout_constraintEnd_toStartOf="@+id/grand_total_price"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintTop_toTopOf="parent" />

                    <TextView
                        android:id="@+id/grand_total_price"
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:background="@color/azsite"
                        android:gravity="center|left"
                        android:paddingLeft="3dp"
                        android:paddingRight="6dp"
                        android:text="0000"
                        android:textColor="@color/black"
                        android:textSize="22sp"
                        android:textStyle="bold"
                        app:layout_constraintBottom_toBottomOf="parent"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintTop_toTopOf="parent" />
                </android.support.constraint.ConstraintLayout>


            </android.support.constraint.ConstraintLayout>
        </android.support.v7.widget.CardView>

        <Button
            android:id="@+id/submit"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginTop="12dp"
            android:layout_marginEnd="8dp"
            android:layout_marginBottom="16dp"
            android:background="@drawable/bottom_line_shape_4_button_style"
            android:foreground="?android:attr/selectableItemBackground"
            android:text="Purchase"
            android:textColor="@color/black"
            android:textSize="22sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/bill_card" />


    </android.support.constraint.ConstraintLayout>


</android.support.v4.widget.NestedScrollView>

‹/android.support.design.widget.CoordinatorLayout›


comment
Решение Я пытался Добавить android:fitsSystemWindows=true Добавить android:fillViewport=true Добавить android:layout_gravity=fill_vertical   -  person Ehtsham Ul Haq    schedule 07.04.2020


Ответы (2)


Попробуйте добавить вид ниже кнопки отправки с помощью limitedlayout

<View
                    android:layout_width="match_parent"
                    android:layout_height="100dp"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintHorizontal_bias="0.0"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toBottomOf="@+id/submit"/>
person Android Geek    schedule 07.04.2020

Вы можете добавить пустой вид в конце макета. Под твоей кнопкой. Это может решить вашу проблему

person Okan Serdaroğlu    schedule 06.04.2020
comment
нет, это не решает проблему, пока не будет нажат какой-либо вид. когда я ввожу имя в текст редактирования или нажимаю кнопку, появляется пробел. - person Ehtsham Ul Haq; 07.04.2020