Как объясняется в заголовке, я использую сворачивающуюся панель инструментов и NestedScrollView с RecyclerView внутри, и всякий раз, когда у меня есть 5 элементов в RecyclerView или меньше, отображается пустое пространство (например, если у меня есть только 2 элемента, пространство на дно будет огромным, но если у меня будет 6+ предметов, пустого места не будет).
Вот изображение и XML:
LayoutInspector и эмулятор, показывающий проблему
<?xml version = "1.0" encoding = "utf-8"?>
<android.support.design.widget.CoordinatorLayout android:layout_width = "match_parent"
android:layout_height = "match_parent"
xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:app = "http://schemas.android.com/apk/res-auto">
<android.support.design.widget.AppBarLayout
android:id = "@+id/appbar"
android:layout_width = "match_parent"
android:background = "@color/backgroundColor"
android:layout_height = "wrap_content">
<android.support.design.widget.CollapsingToolbarLayout
android:id = "@+id/episodeDetailsCollapsingToolbar"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
app:title = "Lorem ipsum dolor sit amet"
app:navigationIcon = "@drawable/ic_arrow_back_black"
app:layout_scrollFlags = "scroll|exitUntilCollapsed" >
<LinearLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:orientation = "vertical">
<FrameLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content">
<ImageView
android:layout_width = "match_parent"
android:layout_height = "300dp"
android:contentDescription = "@string/episode_photo"
android:id = "@+id/photoImageView"
android:src = "@drawable/ic_image_60dp"
android:scaleType = "centerCrop"/>
<View
android:layout_width = "match_parent"
android:layout_height = "40dp"
android:layout_gravity = "top"
android:background = "@drawable/fade_to_white_gradient_top"/>
<View
android:layout_width = "match_parent"
android:layout_height = "40dp"
android:layout_gravity = "bottom"
android:background = "@drawable/fade_to_white_gradient"/>
</FrameLayout>
<Space
android:layout_width = "wrap_content"
android:layout_height = "70dp"/>
</LinearLayout>
<android.support.v7.widget.Toolbar
xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width = "match_parent"
android:layout_height = "?android:attr/actionBarSize"
android:background = "@android:color/transparent"
android:theme = "@style/ToolBarStyle"
app:navigationIcon = "@drawable/ic_arrow_back_black"
app:layout_collapseMode = "pin"
android:id = "@+id/episodeListToolbar" />
</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"
android:paddingBottom = "0dp"
android:layout_marginBottom = "0dp"
app:layout_behavior = "@string/appbar_scrolling_view_behavior">
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
android:orientation = "vertical" android:layout_width = "match_parent"
android:layout_gravity = "bottom"
android:layout_height = "wrap_content">
<TextView
android:layout_marginTop = "10dp"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:paddingStart = "25dp"
android:textColor = "@color/colorPrimary"
android:textSize = "16sp"
android:paddingBottom = "5dp"
android:text = "@string/item_season_episode_placeholder"
android:id = "@+id/seasonEpisodeTextView"/>
<TextView
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "@string/lorem_ipsum"
android:paddingStart = "25dp"
android:paddingEnd = "25dp"
android:textSize = "15sp"
android:textColor = "@color/textColor"
android:id = "@+id/descriptionTextView"/>
<TextView
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "@string/comments"
android:textSize = "14sp"
android:textColor = "@color/textColor"
android:padding = "5dp"
android:layout_margin = "20dp"
android:drawableStart = "@drawable/ic_comments"
android:drawablePadding = "8dp"
android:foreground = "?selectableItemBackground"
android:id = "@+id/commentsButton"/>
<TextView
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "@string/other_episodes"
android:paddingStart = "25dp"
android:paddingEnd = "15dp"
android:textSize = "20sp"
android:textColor = "@color/darkTextColor"
android:textStyle = "bold"/>
<LinearLayout
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:orientation = "vertical"
android:gravity = "center"
android:visibility = "gone"
android:id = "@+id/emptyNextFiveLinearLayout">
<ImageView
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:src = "@drawable/ic_empty_placeholder"
android:layout_marginBottom = "10dp"
android:contentDescription = "@string/empty_placeholder_image"/>
<TextView
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:textAlignment = "center"
android:text = "@string/empty_message"
android:textSize = "15sp"/>
</LinearLayout>
<android.support.v7.widget.RecyclerView
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:paddingStart = "5dp"
android:paddingEnd = "5dp"
android:id = "@+id/episodeDetailsRecyclerView"/>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
Решения, которые я пробовал до сих пор:
android:fitsSystemWindows = "true" в CoordinatorLayoutandroid:fillViewport = "true" в NestedScrollViewandroid:layout_gravity = "fill_vertical" к NestedScrollView и RecyclerViewandroid:overScrollMode = "never" в NestedScrollViewЭто ожидаемое поведение, поскольку сворачивающаяся панель инструментов должна полностью свернуться, где бы она ни использовалась, поэтому для этого внизу создается дополнительное пустое пространство.