gpt4 book ai didi

android - 如何避免选定的列表项移动到列表顶部?

转载 作者:行者123 更新时间:2023-11-30 00:05:45 24 4
gpt4 key购买 nike

我有一个包含 50 个项目的 RecyclerView。我将使用 Remote 向上和向下按钮一一导航。要选择任何项目(例如第 25 个),我正在使用 recyclerview.scrollToPosition(position) 方法。选择后,项目会自动移动到列表的顶部位置。我不希望我选择的项目排在首位。我想成为相同的选定位置。我如何实现这一目标?

谢谢,K.拉杰什

最佳答案

如果您使用的是向上和向下控件,它们完全独立于 RecyclerView 的实际 ViewHolder,您可以只使用 RecyclerView。滚动(x,y)

假设您的所有商品尺寸相同,您甚至不必考虑“所选商品”索引,因为商品高度不可能发生变化。只需在第一个位置使用 View ,然后在每次向上或向下按钮单击时滚动正高度或负高度。

如果您使用 LinearLayoutManagerGridLayoutManager,Kotlin 中的部分示例如下所示:

    view.findViewById<Button>(R.id.up).setOnClickListener {
val temp = recyclerView.layoutManager.findViewByPosition((recyclerView.layoutManager as LinearLayoutManager).findFirstCompletelyVisibleItemPosition())
temp?.let {
recyclerView?.scrollBy(0, -it.height)
}
}

view.findViewById<Button>(R.id.down).setOnClickListener {
val temp = recyclerView.layoutManager.findViewByPosition((recyclerView.layoutManager as LinearLayoutManager).findFirstCompletelyVisibleItemPosition())
temp?.let {
recyclerView?.scrollBy(0, it.height)
}
}

另外,请注意,如果您将 ItemDecoration 添加到您的 RecyclerView,则在滚动时需要考虑这些额外的间距。

关于android - 如何避免选定的列表项移动到列表顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49053135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com