最近在popwindow中使用了spinner,不过在测试的时候点击spinner报了个错误:
android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRootImpl$W@175145bc is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:565)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:282)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85)
at android.widget.PopupWindow.invokePopup(PopupWindow.java:1104)
at android.widget.PopupWindow.showAsDropDown(PopupWindow.java:1008)
at androidx.appcompat.widget.AppCompatPopupWindow.showAsDropDown(AppCompatPopupWindow.java:77)
at androidx.core.widget.PopupWindowCompat.showAsDropDown(PopupWindowCompat.java:69)
at androidx.appcompat.widget.ListPopupWindow.show(ListPopupWindow.java:754)
at androidx.appcompat.widget.AppCompatSpinner$DropdownPopup.show(AppCompatSpinner.java:1050)
at androidx.appcompat.widget.AppCompatSpinner.showPopup(AppCompatSpinner.java:608)
at androidx.appcompat.widget.AppCompatSpinner.performClick(AppCompatSpinner.java:452)
at android.view.View$PerformClick.run(View.java:19866)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5305)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
经过查证 需要设置
Spinner的model样式为dialog
android:spinnerMode="dialog"
完成设置之后恢复正常