From 5079e5b91c7866e04b8c0f883550e04d3a7c82a3 Mon Sep 17 00:00:00 2001 From: Terren Gurule <11605395+terreng@users.noreply.github.com> Date: Mon, 24 Nov 2025 21:19:28 -0800 Subject: [PATCH] Fix not clickable via TalkBack --- .../main/java/com/reactnativemenu/MenuView.kt | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/android/src/main/java/com/reactnativemenu/MenuView.kt b/android/src/main/java/com/reactnativemenu/MenuView.kt index c45f5cc8..003c4b1a 100644 --- a/android/src/main/java/com/reactnativemenu/MenuView.kt +++ b/android/src/main/java/com/reactnativemenu/MenuView.kt @@ -52,6 +52,18 @@ class MenuView(private val mContext: ReactContext) : ReactViewGroup(mContext) { prepareMenu() } + override fun addView(child: View?, index: Int, params: ViewGroup.LayoutParams?) { + super.addView(child, index, params) + // Make child views trigger menu when clicked via TalkBack + child?.let { + it.isClickable = true + it.isFocusable = true + it.setOnClickListener { + performClick() + } + } + } + override fun onInterceptTouchEvent(ev: MotionEvent): Boolean { return true } @@ -61,6 +73,14 @@ class MenuView(private val mContext: ReactContext) : ReactViewGroup(mContext) { return true } + override fun performClick(): Boolean { + super.performClick() + if (!mIsOnLongPress) { + prepareMenu() + } + return true + } + override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) { super.onSizeChanged(w, h, oldw, oldh) updateTouchDelegate()