android - 从片段重新创建活动得到崩溃
问题描述
我想在更改主题后重新创建活动要查看主题更改我想在片段中编写recreate()但不幸的是,程序崩溃了
这些是我的代码:
MaterialDialog(context, BottomSheet(LayoutMode.WRAP_CONTENT)).show {
listItems(R.array.skin) { _, index, text ->
Prefs(context).setSkin(index)
activity.recreate()
}
positiveButton(R.string.select_theme)
negativeButton(R.string.NegativeButton)
}
这是我的错误:
java.lang.IllegalArgumentException:View=DecorView@3f0a3fb[MainActivity] 未附加到 android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:517) 的 android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:426) 的窗口管理器android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:126) at android.app.Dialog.dismissDialog(Dialog.java:389) at android.app.Dialog.dismiss(Dialog.java:371) at com.afollestad.materialdialogs .MaterialDialog.dismiss(MaterialDialog.kt:400) at com.afollestad.materialdialogs.bottomsheets.BottomSheet$setupBottomSheetBehavior$$inlined$apply$lambda$2.invoke(BottomSheet.kt:133) at com.afollestad.materialdialogs.bottomsheets.BottomSheet $setupBottomSheetBehavior$$inlined$apply$lambda$2。在 com.afollestad.materialdialogs.bottomsheets.UtilKt$setCallbacks$1.onStateChanged(Util.kt:59) 在 com.google.android.material.bottomsheet.BottomSheetBehavior.setStateInternal(BottomSheetBehavior.java:1089) 调用(BottomSheet.kt:46) ) 在 com.google.android.material.bottomsheet.BottomSheetBehavior$SettleRunnable.run(BottomSheetBehavior.java:1505) 在 android.view.Choreographer$CallbackRecord.run(Choreographer.java:966)Choreographer$CallbackRecord.run(Choreographer.java:966)Choreographer$CallbackRecord.run(Choreographer.java:966)
解决方案
推荐阅读
- python - How do I block the IP for those who enter my website twice?
- visual-studio-code - 对象键的VScode JS语法颜色
- java - 从文本文件java读取输入
- javascript - 另一个 DIV 中的 DIV 未加载图像
- c++ - dfs迷宫生成,优化?
- sql-server - SQL Server 优化
- gojs - gojs 自定义绑定作为 textBlock 的一部分传递给函数
- laravel - Laravel/Vue - JWT 令牌记住我
- mysql - 在 3 个不同表之间进行 2 次 JOIN 后查找 MAX
- php - 尽可能使用 slug 而不是 ID