wrap_content
の高さに設定されたRecyclerView
があります。今私はそれにOnLoadMore
を実装する必要がありますが、問題があります。 私は Android - wrap_contentの高さを持つRecyclerViewの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
にページを読み込む必要があります。 これを行う最善の方法は、RecyclerView
の最後の項目が表示されたときにonLoadMore
イベントに電話することです。私はすでにアダプターの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
を実装するための別の方法は何ですか?
アップデート:android:layout_height:"wrap_content"
と完全に
RecyclerView
作品とスムーズに私のScrollView
スクロールします。
アップデート2:あなたのRecyclerView
高さがwrap_content
ときに私の問題がある
、RecyclerView
のスクロールイベントが起動することはできません。だから、私のRecyclerView
がそのリストの終わりに達したときにそれを見つけて、OnLoadMore
イベントをそのように実装する代わりの方法が必要です。
アップデート3
私は質問にそれを書いた前に、私は、XMLを簡素化...本当のXMLでは、ViewPager
代わりのRecyclerView
があります。そして私はViewPager
に4つのタブがあり、それぞれのタブには内容が異なるRecyclerView
が含まれています。
上記のうちViewPager
私はユーザーに関するいくつかの情報を持っており、それらを一緒にスクロールしたいと思います。だから私はこのヘッダとViewPager
をScrollView
に入れ、RecyclerView
の高さをwrap_content
に設定しました。
instagramのプロフィールページをご覧ください。私はこのページのように動作します。
この情報をRecyclerView
のヘッダーに表示することはできません。この方法では、すべてのタブの各RecyclerView
にこの情報を追加する必要があるからです。
あなたが使っているサポートライブラリアンドロイド版は何ですか? – Ironman
@Ironman 24.2.1 – K2evil
なぜあなたは 'RecyclerView'の高さを' wrap_content'にする必要がありますか? –