Android 为什么我的recyclerview在添加更新数据后返回顶部?
在循环器视图中滚动到底部后,我尝试加载更多数据。但每次我滚动到按钮,数据都会更新并添加新数据,但它会自动滚动到顶部。我希望它留在那里,更新数据 这是initViewAndroid 为什么我的recyclerview在添加更新数据后返回顶部?,android,android-recyclerview,Android,Android Recyclerview,在循环器视图中滚动到底部后,我尝试加载更多数据。但每次我滚动到按钮,数据都会更新并添加新数据,但它会自动滚动到顶部。我希望它留在那里,更新数据 这是initView val apiService = NetworkFactory.buildBersedekahRetrofit(activity?.applicationContext!!) .create(KalisaServices::class.java) Log.e("load more", lo
val apiService = NetworkFactory.buildBersedekahRetrofit(activity?.applicationContext!!)
.create(KalisaServices::class.java)
Log.e("load more", loadMore.toString())
val call: Call<ListTransactionResponse> = apiService.getTransactionList(
loadMore.toString(),
10.toString()
)
layoutManager = LinearLayoutManager(context)
call.enqueue(object : Callback<ListTransactionResponse> {
override fun onResponse(
call: Call<ListTransactionResponse>,
response: Response<ListTransactionResponse>
) {
pb.visibility = View.GONE
programNames.addAll(response.body()?.list!!)
listAdapter = HistoryListAdapter(programNames)
if (loadMore > 0) listAdapter.notifyItemChanged(loadMore)
list_view_history_program.layoutManager = layoutManager
list_view_history_program?.apply {
adapter = listAdapter
}
Log.e("listAdapter.itemCount", listAdapter.itemCount.toString())
listAdapter.onItemClick = {
navigation?.toWakafHistoryDetail(it.donatur)
}
loadMore += 10
}
override fun onFailure(call: Call<ListTransactionResponse>, t: Throwable) {
Toast.makeText(activity, "Failure", Toast.LENGTH_SHORT).show()
t.printStackTrace()
}
})
val-apiService=NetworkFactory.buildbersedekah(活动?.applicationContext!!)
.create(KalisaServices::class.java)
Log.e(“加载更多”,loadMore.toString())
val call:call=apiService.getTransactionList(
loadMore.toString(),
10.toString()
)
layoutManager=LinearLayoutManager(上下文)
排队(对象:Callback{
覆盖响应(
呼叫:呼叫,,
答复:答复
) {
pb.visibility=View.GONE
programNames.addAll(response.body()?.list!!)
listAdapter=HistoryListAdapter(程序名)
如果(loadMore>0)listAdapter.notifyItemChanged(loadMore)
列表\查看\历史\程序。布局管理器=布局管理器
列表\查看\历史\程序?。应用{
适配器=列表适配器
}
Log.e(“listAdapter.itemCount”,listAdapter.itemCount.toString())
listAdapter.onItemClick={
导航?.towakafhistorydeail(it.donatur)
}
加载更多+=10
}
覆盖失效时的乐趣(调用:调用,t:可丢弃){
Toast.makeText(活动,“失败”,Toast.LENGTH\u SHORT.show())
t、 printStackTrace()
}
})
这就是我如何处理底部后的滚动
private fun addScrollerLi
stener()
{
//attaches scrollListener with RecyclerView
list_view_history_program.addOnScrollListener(object : RecyclerView.OnScrollListener()
{
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int)
{
super.onScrolled(recyclerView, dx, dy)
//findLastCompletelyVisibleItemPostition() returns position of last fully visible view.
////It checks, fully visible view is the last one.
if (layoutManager.findLastCompletelyVisibleItemPosition() == programNames.size - 1)
{
if (programNames.size < loadMore){
pb_history.visibility = View.GONE
}else {
initViews()
pb_history.visibility = View.VISIBLE
}
}
}
})
}
private fun addScrollerLi
斯坦纳()
{
//使用RecyclerView连接scrollListener
list\u view\u history\u program.addOnScrollListener(对象:RecyclerView.OnScrollListener()
{
覆盖已克隆的乐趣(recyclerView:recyclerView,dx:Int,dy:Int)
{
super.onScrolled(回收视图、dx、dy)
//FindLastCompletelyVisibleItemPosition()返回最后一个完全可见视图的位置。
////它检查,完全可见的视图是最后一个。
if(layoutManager.findLastCompletelyVisibleItemPosition()==programNames.size-1)
{
if(programNames.size
有人知道为什么会这样吗?请帮忙