【发布时间】:2021-09-30 14:04:30
【问题描述】:
我正在构建一个小型词典应用程序,截图如下:
当我点击来自mRecyclerView1 的字母时,我想将mRecyclerView2 滚动到以该特定字母开头的第一个单词。
在mRecyclerView1 adapter 中,我创建了一个interface,它获取点击字母的值。
然后在片段中,我在onLetterClick 方法中找到了scrollToPositionWithOffset 的解决方法,如下所示:
override fun onLetterClick(letter: String) {
when (letter) {
"А" -> {
(mRecyclerView2!!.layoutManager as LinearLayoutManager).scrollToPositionWithOffset(
0,
0
)
}
"Б" -> {
(mRecyclerView2!!.layoutManager as LinearLayoutManager).scrollToPositionWithOffset(
140,
0
)
}
}
问题是我必须将字母表中的所有字母与以它们开头的第一个单词的位置一起添加。如果我以后决定添加更多的单词,这些位置将会移动并改变。
有没有更聪明的方法来实现这种滚动效果?如果没有,是否可以创建一个for/while 循环而不是使用带有所有字母的when?
任何帮助将不胜感激!谢谢^^
【问题讨论】:
标签: android-studio kotlin android-recyclerview