java - 带有 RecyclerView 的 CoordinatorLayout 在屏幕底部留下空白空间

标签 java android android-recyclerview android-coordinatorlayout android-collapsingtoolbarlayout

这是我的 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 的内容显示在屏幕顶部的 CollapsingToolbarLayout 下方,其折叠高度与 Toolbar 的折叠高度相同。我试过添加 android:layout_gravity="fill_vertical"到 RecyclerView 但这并没有解决问题

备注

当 CollapsingToolbarLayout 的高度设置为 625dp 时,屏幕根本不会滚动,但是,当我将其设置为 626dp 时,屏幕的内容会滚动,直到 CollapsingToolbarLayout 折叠到工具栏的高度,所以这个额外的 1dp 高度使得屏幕从不滚动变为滚动超过 1dp。 625dp 的数字可能与设备(Nexus 7 2013)的屏幕尺寸有关。另外,不管minHeight我将 CollapsingToolbarLayout 设置为,CollapsingToolbarLayout 总是在与工具栏等效的高度折叠。

简而言之我的问题

我怎样才能使屏幕只滚动以显示不在屏幕上/超出 RecyclerView 内容的内容?

提前致谢。

最佳答案

我找到了解决方案,你可以为 AppBarLayout childView 设置“minHeight”,并设置 app:layout_scrollFlags="scroll|exitUntilCollapsed"

关于java - 带有 RecyclerView 的 CoordinatorLayout 在屏幕底部留下空白空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38103516/

相关文章:

android - 如何在 android ListView 中删除页脚的底部分隔线

java - 单击按钮调用 java 类

安卓 : set TextView style at runtime

java - 从 RecyclerView 适配器启动 Chrome 自定义选项卡

android - notifydatasetchanged在适配器上不起作用

java - 从逗号分隔整数的字符串数组映射的连续天数

java - 为什么 Javassist ProxyFactory 的 create 方法没有根据 args 参数调用正确的构造函数?

java - 如何在不使用 for 循环的情况下转储 <WebElement> 列表的内容

java - recyclerView 的每个项目都向其自己的 Activity 或 fragment 开放

Java 字符串基础