現象
ScrollView内にHORIZONTALなRecyclerViewを入れていると、RecyclerViewの位置まで勝手にスクロールされてしまう。
引っ張って更新とかした場合は発生せず、RecyclerViewの初期化初回だけ発生する。
原因
よくわからないが、AdapterをセットしたタイミングでRecyclerViewにフォーカスが当たってスクロールしちゃう模様。
初回だけ、、、。
対策
Adapterをセット直後にFocusをfalseにしてやる。
これで勝手にスクロールされない。
private fun initAdapter(list: List<Data>) {
recyclerView.apply {
layoutManager = LinearLayoutManager(this@HogeActivity, LinearLayoutManager.HORIZONTAL, false)
adapter = HogeAdapter(list).apply {
setItemClickListener(object : HogeAdapter.ItemClickListener {
override fun onItemClick(data: Data) {
// 選択処理
}
override fun onAddClick() {
// 追加処理
}
})
}
isFocusable = false // ←これやるとスクロールされなくなる
adapter?.notifyDataSetChanged()
}
}