CoordinatorLayout与RecyclerView在屏幕底部留下空白空间

7
这是我的XML的基本模型:
 <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/background_colour"
        >

        <android.support.design.widget.AppBarLayout
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            android:id="@+id/profile_screen_appBar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            android:fitsSystemWindows="true"
            android:minHeight="150dp"
            >

            <android.support.design.widget.CollapsingToolbarLayout
                app:layout_scrollFlags="scroll|exitUntilCollapsed"
                android:fitsSystemWindows="true"
                android:id="@+id/collapsingToolbar"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:expandedTitleMarginTop="32dp"
                app:expandedTitleMarginBottom="32dp"
                app:expandedTitleMarginEnd="4dp"
                app:expandedTitleMarginStart="32dp"
                android:minHeight="100dp"
                >

                <android.support.v7.widget.Toolbar
                    android:minHeight="100dp"
                    android:id="@+id/toolbar"
                    android:layout_width="match_parent"
                    android:layout_height="?attr/actionBarSize"
                    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
                    android:background="@color/fab_material_red_500"
                    >

                </android.support.v7.widget.Toolbar>


             <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:background="@color/blue"
                    >

  <!-- the ViewPager is programatically set to be have the height and width equivalent to that of the screen width of the device -->              <com.example.heavymagikhq.MyViewPager
                        android:padding="0dp"
                        android:fitsSystemWindows="true"
                        android:id="@+id/viewPager"
                        android:layout_width="0dp"
                        android:layout_height="0dp"
                        app:layout_scrollFlags="scroll|enterAlways"/>
                    />

                </RelativeLayout>

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

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

       <android.support.v7.widget.RecyclerView
            android:layout_marginTop="15dp"
            android:layout_marginLeft="6dp"
            android:layout_marginRight="6dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/profile_info_recycler"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"
            />
    </android.support.design.widget.CoordinatorLayout>

问题

目前,RecyclerView 中的一些内容略微超出屏幕,我可以通过滚动来展示它。问题在于,尽管只有少量内容超出屏幕,但整个屏幕都会向上滚动,直到只有 RecyclerView 的内容显示在屏幕顶部,在折叠工具栏下方呈现与工具栏相同高度的折叠状态。我尝试将android:layout_gravity="fill_vertical" 添加到 RecyclerView 中,但这并没有解决问题。

折叠工具栏的高度设置为 625dp 时,屏幕根本不会滚动,但当我将其设置为 626dp 时,屏幕的内容会滚动,直到折叠工具栏折叠到与工具栏相同的高度,因此,多出的 1dp 高度会使屏幕从不滚动变为比 1dp 更多的滚动。625dp 数字可能与设备的(Nexus 7 2013)屏幕大小有关。此外,无论我将 minHeight 设置为什么值,折叠工具栏始终以与工具栏相同的高度折叠。

问题简述

如何使屏幕只滚动以展示 RecyclerView 上未显示的内容/超出 RecyclerView 内容范围的内容?

提前感谢。


3
你有没有找到解决办法?我也遇到了同样的问题 :( - Aspiring Dev
1个回答

1
我找到了解决方案,您可以为AppBarLayout的子视图设置“minHeight”,并将app:layout_scrollFlags设置为“scroll|exitUntilCollapsed”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接