Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Nested scrollview doesnt take available space in CoordinatorLayout

I am facing a problem regarding implementing a NestedScrollview inside a CoordinatorLayout. See the following layout code:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:card_view="http://schemas.android.com/tools">

<android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:expanded="true"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:fitsSystemWindows="true">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">

        <LinearLayout
            android:layout_marginTop="?android:attr/actionBarSize"
            app:layout_collapseMode="parallax"
            android:layout_width="match_parent"
            android:weightSum="2"
            android:orientation="horizontal"
            android:gravity="bottom"
            android:fitsSystemWindows="true"
            android:background="@color/aop_gray"
            android:layout_height="87dp">

            <LinearLayout
                android:background="#E5E5E5"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="match_parent">

            </LinearLayout>

            <LinearLayout
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="match_parent">
            </LinearLayout>

        </LinearLayout>

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar_anders"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/Custom_red"
            style="@style/CustomTheme.CustomActionBar"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            />
        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <android.support.v4.widget.NestedScrollView
        android:id="@+id/scroll"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipToPadding="false"
        android:paddingTop="@dimen/activity_horizontal_margin"
        android:paddingBottom="@dimen/activity_horizontal_margin"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <LinearLayout
            android:id="@+id/test1"
            android:layout_gravity="fill_vertical"
            android:layout_width="match_parent"
            android:orientation="vertical"
            android:layout_height="match_parent">

            <com.Custom.saving.widgets.CustomTextView
                android:id="@+id/aop_data_overview_form_header"
                android:gravity="center"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:paddingRight="@dimen/activity_horizontal_margin"
                android:paddingLeft="@dimen/activity_horizontal_margin"
                style="@style/AopHeader"
                android:layout_marginBottom="@dimen/default_margin"
                android:text="@string/is_your_data_correct_header" />

            <com.Custom.saving.widgets.CustomTextView
                android:layout_marginTop="@dimen/default_margin"
                android:paddingRight="@dimen/activity_horizontal_margin"
                android:paddingLeft="@dimen/activity_horizontal_margin"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                style="@style/TextViewGray"
                android:textColor="#787878"
                android:text="@string/aop_form_header"/>

            <com.Custom.saving.widgets.CustomTextView
                android:layout_marginTop="@dimen/default_margin"
                android:paddingRight="@dimen/activity_horizontal_margin"
                android:paddingLeft="@dimen/activity_horizontal_margin"
                android:layout_width="wrap_content"
                style="@style/AopBlueParagraph"
                android:text="@string/aop_identity_data"
                android:layout_height="wrap_content"/>

            <android.support.v7.widget.CardView
                android:id="@+id/card_view2"
                android:layout_width="match_parent"
                android:layout_marginTop="@dimen/activity_vertical_margin"
                card_view:cardElevation="5dp"
                android:background="@color/white"
                android:gravity="center_horizontal"
                card_view:cardCornerRadius="4dp"
                android:layout_height="wrap_content">

                <LinearLayout
                    style="@style/ActivityContent"
                    android:paddingBottom="@dimen/activity_vertical_margin"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:orientation="vertical">

                    <RadioGroup
                        android:layout_width="wrap_content"
                        android:layout_gravity="left"
                        android:orientation="horizontal"
                        android:layout_height="wrap_content">

                        <RadioButton
                            android:layout_width="wrap_content"
                            android:layout_marginRight="@dimen/default_margin"
                            android:layout_height="wrap_content"
                            android:text="Man"/>

                        <RadioButton
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="Vrouw"/>

                    </RadioGroup>


                    <android.support.design.widget.TextInputLayout
                        android:layout_width="match_parent"
                        android:layout_marginTop="@dimen/small_margin"
                        app:hintTextAppearance="@style/TextInputLayoutStyle"
                        android:layout_height="wrap_content">

                        <com.Custom.saving.widgets.CustomEditText
                            style="@style/Input"
                            android:layout_marginTop="@dimen/small_margin"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:hint="Voornaam"/>

                    </android.support.design.widget.TextInputLayout>

                    <android.support.design.widget.TextInputLayout
                        android:layout_width="match_parent"
                        app:hintTextAppearance="@style/TextInputLayoutStyle"
                        android:layout_marginTop="@dimen/small_margin"
                        android:layout_height="wrap_content">

                        <com.Custom.saving.widgets.CustomEditText
                            style="@style/Input"
                            android:layout_marginTop="@dimen/small_margin"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:hint="Achternaam"/>

                    </android.support.design.widget.TextInputLayout>

                    <android.support.design.widget.TextInputLayout
                        android:layout_width="match_parent"
                        app:hintTextAppearance="@style/TextInputLayoutStyle"
                        android:layout_marginTop="@dimen/small_margin"
                        android:layout_height="wrap_content">

                        <com.Custom.saving.widgets.CustomEditText
                            style="@style/Input"
                            android:layout_marginTop="@dimen/small_margin"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:hint="Achternaam"/>

                    </android.support.design.widget.TextInputLayout>

                    <android.support.design.widget.TextInputLayout
                        android:layout_width="match_parent"
                        app:hintTextAppearance="@style/TextInputLayoutStyle"
                        android:layout_marginTop="@dimen/small_margin"
                        android:layout_height="wrap_content">

                        <com.Custom.saving.widgets.CustomEditText
                            style="@style/Input"
                            android:layout_marginTop="@dimen/small_margin"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:hint="Achternaam"/>

                    </android.support.design.widget.TextInputLayout>
            </LinearLayout>
        </android.support.v7.widget.CardView>


        <com.Custom.saving.widgets.CustomTextView
            android:layout_marginTop="@dimen/default_margin"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:layout_width="wrap_content"
            style="@style/AopBlueParagraph"
            android:text="@string/aop_identity_data"
            android:layout_height="wrap_content"/>
    </LinearLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>

So basically I got a bar thats sticking on the top of the screen when the user scrolls through the content. Which is a form consisting of cards with input elements. The toolbar makes way for that bar on scroll.

The problem is that the NestedScrollview doesn't take the full height and leaves a big margin on the bottom. While the content is still scrollable in a smaller view. Sometimes it does expand but then all of a sudden gets back a margin again as soon as i start editing text in an EditText.

like image 774
Sjaak Rusma Avatar asked Jun 21 '16 05:06

Sjaak Rusma


1 Answers

Add android:fillViewport="true" to your NestedScrollView.

like image 153
Vijesh Krishna Avatar answered Sep 26 '22 20:09

Vijesh Krishna