From 1b94de395652ff41d3298172e95ea7d2df892480 Mon Sep 17 00:00:00 2001 From: 821938089 <821938089@qq.com> Date: Sat, 23 Jul 2022 06:41:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/legado/app/ui/book/read/TextActionMenu.kt | 8 +++++++- app/src/main/java/io/legado/app/ui/widget/PopupAction.kt | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/read/TextActionMenu.kt b/app/src/main/java/io/legado/app/ui/book/read/TextActionMenu.kt index 41f2130b2..4dbd6db65 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/TextActionMenu.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/TextActionMenu.kt @@ -31,7 +31,9 @@ class TextActionMenu(private val context: Context, private val callBack: CallBac TextToSpeech.OnInitListener { private val binding = PopupActionMenuBinding.inflate(LayoutInflater.from(context)) - private val adapter = Adapter(context) + private val adapter = Adapter(context).apply { + setHasStableIds(true) + } private val menuItems: List private val visibleMenuItems = arrayListOf() private val moreMenuItems = arrayListOf() @@ -157,6 +159,10 @@ class TextActionMenu(private val context: Context, private val callBack: CallBac inner class Adapter(context: Context) : RecyclerAdapter(context) { + override fun getItemId(position: Int): Long { + return position.toLong() + } + override fun getViewBinding(parent: ViewGroup): ItemTextBinding { return ItemTextBinding.inflate(inflater, parent, false) } diff --git a/app/src/main/java/io/legado/app/ui/widget/PopupAction.kt b/app/src/main/java/io/legado/app/ui/widget/PopupAction.kt index e83808168..bf2d54c6a 100644 --- a/app/src/main/java/io/legado/app/ui/widget/PopupAction.kt +++ b/app/src/main/java/io/legado/app/ui/widget/PopupAction.kt @@ -15,7 +15,9 @@ class PopupAction(private val context: Context) : val binding = PopupActionBinding.inflate(context.layoutInflater) val adapter by lazy { - Adapter(context) + Adapter(context).apply { + setHasStableIds(true) + } } var onActionClick: ((action: String) -> Unit)? = null @@ -36,6 +38,10 @@ class PopupAction(private val context: Context) : inner class Adapter(context: Context) : RecyclerAdapter, ItemTextBinding>(context) { + override fun getItemId(position: Int): Long { + return position.toLong() + } + override fun getViewBinding(parent: ViewGroup): ItemTextBinding { return ItemTextBinding.inflate(inflater, parent, false) }