我有RecyclerView
它的高度设置为wrap_content
。现在我需要实施OnLoadMore
它,但有一个问题。我用了,
RecyclerView.OnScrollListener.onScrolled(RecyclerView recyclerView, int dx, int dy)
但它不会被调用,因为我RecyclerView
的不滚动。它的高度是wrap_content
。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/root_rtl"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
<include
android:id="@+id/tool_bar"
layout="@layout/toolbar" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/tool_bar">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context="com.yarima.msn.Activities.ProfileActivity">
<FrameLayout
android:id="@+id/FRAGMENT_PLACEHOLDER"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white">
<!-- Some Content That I want to scroll with recyclerview -->
</FrameLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerview_posts"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"
android:bellow="@id/FRAGMENT_PLACEHOLDER"/>
</RelativeLayout>
</ScrollView>
</RelativeLayout>
所以我需要使用另一种方法将更多页面加载到RecyclerView
. 我认为最好的方法是onLoadMore
在最后一项RecyclerView
可见时调用事件。我已经尝试从onBindViewHolder
适配器中的方法执行此操作,但所有页面都加载了。
if(getItemCount()-position == 1 && onLoadMoreListener != null){
if (recyclerView != null) {
visibleItemCount = recyclerView.getChildCount();
totalItemCount = recyclerView.getLayoutManager().getItemCount();
firstVisibleItem = ((LinearLayoutManager)recyclerView.getLayoutManager()).findFirstVisibleItemPosition();
if (loading) {
if (totalItemCount > previousTotal) {
loading = false;
previousTotal = totalItemCount;
}
}
if (!loading && (totalItemCount - visibleItemCount)
<= (firstVisibleItem + visibleThreshold)) {
loading = true;
onLoadMoreListener.onLoadMore();
}
}
}
onLoadMore
不使用滚动事件的替代方法是什么?
更新:
RecyclerView
完美配合android:layout_height:"wrap_content"
,我的卷轴ScrollView
也很流畅。
更新 2:
我的问题是当您的RecyclerView
身高为时,无法调用wrap_content
滚动事件。RecyclerView
所以我需要一种替代方法来找出我何时RecyclerView
到达其列表的末尾并以OnLoadMore
这种方式实施事件。
更新 3
我在写问题之前简化了 xml……在真正的 xml 中,有ViewPager
而不是RecyclerView
. 我有 4 个选项卡ViewPager
,每个选项卡都包含一个RecyclerView
不同的内容。
在此之上,ViewPager
我有一些关于用户的信息,我想将所有这些信息一起滚动。所以我把这个标题ViewPager
放在 a 中ScrollView
,并将高度设置RecyclerView
为wrap_content
。
您可以查看 instagram 的个人资料页面。我希望这个页面像那样工作。
无法在标题中显示此信息,RecyclerView
因为通过这种方式,我应该RecyclerView
在每个选项卡的每个选项卡中添加此信息。