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()