どうすれば確認することができますかチェックRecyclerViewが上にスクロールされた場合(findFirstCompletelyVisibleItemPositionは動作しません)
説明:RecyclerView
上のアイテムが大であり、時には「完全に表示」になることはありませんので、この方法は-1を返します(RecyclerView.NO_POSITION
)
をので、私は、この方法を使用するカント私は火にこのことを知っておく必要がありますリサイクラーの視点が最上部に到達したときのアクションです。あなたはRecyclerView.OnScrollListener
を作成し、それがスクロールしたどのくらいのトラックを保つことができる
timelineRecyclerView.addOnScrollListener(object:RecyclerView.OnScrollListener() {
override fun onScrollStateChanged(recyclerView:RecyclerView,
newState:Int) {
super.onScrollStateChanged(recyclerView, newState)
}
override fun onScrolled(recyclerView:RecyclerView, dx:Int, dy:Int) {
super.onScrolled(recyclerView, dx, dy)
currentTimelinePosition += dy
Log.wtf("position", currentTimelinePosition.toString())
//if the timeline position is on its start, allow swipe and refresh
swipeLayout.isEnabled = currentTimelinePosition == 0
}
})
「プルートゥーリフレッシュ」とタグ付けされていることにお気づきになりましたが、これは正確にはこれと関係がありますか?詳細を知っていれば、より良い解決策があるかもしれません。 –
問題は、RecyclerViewがSwipeRefreshLayoutの内側にあることです。スワイプが誤った位置で更新されることがあります。 I.リストが上にないとき。だから私はRecyclerViewが上にあるときだけリフレッシュを許可します – cesarsicas
ああ、私は参照してください。それは非常に奇妙なことですが、私は 'RecyclerView'でその問題はありませんが、おそらくそれは大きなアイテムです。 –