RecyclerView 的滚动条未出现在屏幕边缘
RecyclerView's scrollbar not appearing on edge of screen
我试图在我的 RecyclerView
周围添加边距,同时确保它可以垂直滚动,但由于某种原因,滚动条没有将自己定位在屏幕的 end/right 处。这是 Android X 特有的问题吗?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/myLinearLayout"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingStart="@dimen/activity_horizontal_margin"
android:paddingEnd="@dimen/activity_horizontal_margin">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/myRecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"/>
</LinearLayout>
Is this an issue specific to Android X?
不是真的。
这里的问题是您在 RecyclerView 的容器上指定了填充。
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingStart="@dimen/activity_horizontal_margin"
android:paddingEnd="@dimen/activity_horizontal_margin"
这是因为用于绘制滚动条的矩形仅限于绘制RecyclerView 的矩形。这也是因为滚动条约束在上面的原因。
删除这些,您将获得位于屏幕边框上的滚动条。
也检查this related question
解释:
该栏在回收站视图中,回收站受填充限制。
快速修复:
向回收视图添加填充
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/myLinearLayout"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/myRecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"
android:paddingEnd.../>
</LinearLayout>
良好做法:
列表应该是全宽的,这样用户交互就不会受到未知间距的阻碍。将填充物添加到您在适配器中充气的物品。
我试图在我的 RecyclerView
周围添加边距,同时确保它可以垂直滚动,但由于某种原因,滚动条没有将自己定位在屏幕的 end/right 处。这是 Android X 特有的问题吗?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/myLinearLayout"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingStart="@dimen/activity_horizontal_margin"
android:paddingEnd="@dimen/activity_horizontal_margin">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/myRecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"/>
</LinearLayout>
Is this an issue specific to Android X?
不是真的。
这里的问题是您在 RecyclerView 的容器上指定了填充。
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingStart="@dimen/activity_horizontal_margin"
android:paddingEnd="@dimen/activity_horizontal_margin"
这是因为用于绘制滚动条的矩形仅限于绘制RecyclerView 的矩形。这也是因为滚动条约束在上面的原因。
删除这些,您将获得位于屏幕边框上的滚动条。
也检查this related question
解释:
该栏在回收站视图中,回收站受填充限制。
快速修复:
向回收视图添加填充
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/myLinearLayout"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/myRecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"
android:paddingEnd.../>
</LinearLayout>
良好做法: 列表应该是全宽的,这样用户交互就不会受到未知间距的阻碍。将填充物添加到您在适配器中充气的物品。