【发布时间】:2018-04-24 10:57:43
【问题描述】:
我有以下情况:我有一个带有填充的垂直 RecyclerView,父布局 clipChildren 和 clipToPadding 设置为 false,如下所示:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:clipChildren="false"
android:clipToPadding="false">
<android.support.v7.widget.RecyclerView
android:layout_margin="@dimen/padding_medium"
android:id="@+id/recyclerview_pager"
android:layout_width="match_parent"
android:layout_height="@dimen/holder_height_medium"/>
</LinearLayout>
此外,我附加了一个相当不起眼的 LinearLayoutManager,如下所示:
MyLayoutManager layoutManager
= new MyLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false);
recyclerViewPager.setLayoutManager(layoutManager);
适配器中的视图持有者也很简单:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="@dimen/layout_padding_small"
android:paddingRight="@dimen/layout_padding_small"
android:paddingLeft="@dimen/layout_padding_small">
.....
</LinearLayout>
现在我得到以下行为:当我滚动到一个视图时,应该在回收器视图之外的填充区域中可见的项目尚未呈现。只有当我开始轻微滚动时,项目才会根据需要呈现并显示在填充区域中:
我如何告诉 recyclerview 在相邻项目真正进入视野之前对其进行布局?在LayoutManager 上使用项目预取配置没有帮助。我已经搜索了LayoutManager 的方法,并没有找到一个很好的方法来覆盖扩展。
提前感谢您的帮助,如果还有什么不清楚的地方请告诉我。
【问题讨论】:
-
您想在滚动前显示下一项吗?
-
是的,基本上这就是我想要实现的目标
-
好的,你可能会尝试滚动到位置0,它会使recyclerview重绘孩子,
标签: android android-recyclerview linearlayoutmanager