gpt4 book ai didi

java - 如何突出显示回收器 View 的单行或项目并将突出显示的行滚动到屏幕顶部

转载 作者:太空宇宙 更新时间:2023-11-04 10:23:42 26 4
gpt4 key购买 nike

我想用声音依次突出显示单行 recyclerview 并将突出显示行滚动到屏幕顶部这就是我所做的:

screenshot

这里是它的代码:

 fun AnimateToSurahAlFeel(recyclerView: RecyclerView, layoutManager: LinearLayoutManager, currentPosition: Int) {

var position: Int = currentPosition / 1000


when (position) {


0 -> {
recyclerView.smoothScrollToPosition(0)
recyclerView.getChildAt(0).isSelected = true

}
4 -> {
recyclerView.smoothScrollToPosition(1)
recyclerView.getChildAt(0).isSelected = false
recyclerView.getChildAt(1).isSelected = true
}
11 -> {
recyclerView.smoothScrollToPosition(2)
recyclerView.getChildAt(1).isSelected = false
recyclerView.getChildAt(2).isSelected = true
}
17 -> {
recyclerView.smoothScrollToPosition(3)
recyclerView.getChildAt(2).isSelected = false
recyclerView.getChildAt(3).isSelected = true
}
21 -> {
recyclerView.smoothScrollToPosition(4)
recyclerView.getChildAt(3).isSelected = false
recyclerView.getChildAt(4).isSelected = true
}
28 -> {
recyclerView.smoothScrollToPosition(5)
recyclerView.getChildAt(4).isSelected = false

if (recyclerView.getChildAt(5) != null)
recyclerView.getChildAt(5).isSelected = true
}

}
}

在函数中currentPosition是媒体播放器当前位置

这段代码的问题是:

在屏幕截图中,第 4 行和第 5 行当前不可见,当突出显示第 4 行和第 5 行时,应用程序崩溃并给出空指针异常,据我所知,这两行尚未创建,这就是原因

recyclerview.getChildAt(4)recyclerview.getChildAt(5) 返回 null 并导致应用程序崩溃。

现在

  1. 如何修复 recyclerview.getchildAt(4) 或 recyclerview.getchildAt(5) 返回 null 且 getChildAt(position) 返回 n-1 行的应用程序崩溃,因此无论如何都会发生 recyclerview.getchildAt(5) 处的应用程序崩溃,但我想要 n 行,因为我想突出显示所有行

  2. 如何将突出显示的行滚动到位置 0(顶部)即第 0 行从屏幕上升,第 1 行占据该位置,依此类推...

我想实现这样的目标,突出显示的行位于顶部,当突出显示另一行时,该行将从屏幕上消失

picture

最佳答案

您需要时间让View 进行绑定(bind)。只是为了前任。您可以发布操作。

....
17 -> {
recyclerView.smoothScrollToPosition(3)
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {

recyclerView.getChildAt(2).isSelected = false
recyclerView.getChildAt(3).isSelected = true
}, 500);
}
....

但我强烈建议您使用一些状态集合,它将保存和处理您的运行和显示 View 的状态。

关于java - 如何突出显示回收器 View 的单行或项目并将突出显示的行滚动到屏幕顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50803733/

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