Android Studio 4.2 PopupWindowからActionModeを起動できない。ActionMode does not work in PopupWindow.
ActionMode使用するRecyclerViewをPopupWindow内で使おうとしたら、どうやってもActionModeが起動しなかった。
うんともすんとも言わない。
デバッグ実行でトレースしてみたが、startActionModeで起動した時に渡したコールバックがどうしても呼ばれない。
Android Emulator 4.1, 5.0, 7.1.1で実験したが、全てダメだった。
一応書いておくが、PopupWindow以外では正常に動作する。
AlertDialog上でも動作した。
原因不明だが、PopupWindowはActivityとは違う場所にあるのではと推測する。
そして、ActionModeはActivity上でしか使えない?みたいな?
少し話は違うが、PopupWindow上のViewをAnchorとして、ネストしたPopupWindowを起動すると、必ずクラッシュする。
E/AndroidRuntime: FATAL EXCEPTION: main
android.view.WindowManager$BadTokenException: Unable to add window
-- token android.view.ViewRootImpl$W@b1ae1f98 is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:585)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:326)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:224)
at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:149)
at android.view.Window$LocalWindowManager.addView(Window.java:547)
at android.widget.PopupWindow.invokePopup(PopupWindow.java:988)
at android.widget.PopupWindow.showAsDropDown(PopupWindow.java:897)
at android.widget.PopupWindow.showAsDropDown(PopupWindow.java:860)
以下略
これは、Activity上のViewでないとPopupWindowが起動できないということのように見える。
そして、PopupWindowはActivity上ではない?
つまり、そういう事??
どういう事?
よし、別なアプローチにしよう。