嵌套的scrollview不占用CoordinatorLayout

时间:2016-06-21 05:55:21

标签: android coordinator-layout android-nestedscrollview

我在NestedScrollview内实施CoordinatorLayout时遇到了问题。请参阅以下布局代码:

<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>

所以基本上当用户滚动浏览内容时,我会在屏幕顶部粘贴一个栏。这是一个由带有输入元素的卡组成的表单。滚动工具栏为该栏提供了方法。

问题在于NestedScrollview没有占据整个高度并且在底部留下了很大的余量。虽然内容仍然可以在较小的视图中滚动。有时候它确实会扩展,但是一旦我开始在EditText中编辑文本,它就会突然再次回到边缘。

2 个答案:

答案 0 :(得分:7)

android:fillViewport="true"添加到您的NestedScrollView

答案 1 :(得分:-1)

android:fillViewport="true"添加到ScrollViewandroid:layout_height="wrap_content",添加到您LinearLayout的直接子女ScrollView