android - BaseTransientBottomBar 和相关的错误,以及如何解决它
问题描述
首先,我试图解决以下问题:
第 1 步。我在我的 BaseActivity 和 BaseActivity 抽象类中放置了一个方法,以了解 Activity 何时停止以及视图(片段的根视图)何时被销毁 [在这两种情况下都返回 true,但在事件之前返回 false(onStop( ), onViewDestroyed()) 被调用]。
第 2 步。当两者中的任何一个都返回 true 时,我已阻止显示唯一的 SnackBar。还检查了 BaseActivity 的 isFinishing()。
但是错误并没有消失。
我想了解更多关于这门课的信息:
android.support.design.widget.BaseTransientBottomBar
以及与之相关的内部异常,以及如何解决以下问题:
08-25 16:45:50.826 5618-5688/com.my_package D/CrashlyticsCore: Session 5B8139230285-0001-15F2-C62ED7C4B2D1 has fatal exception: true
08-25 16:45:50.827 5618-5688/com.my_package D/CrashlyticsCore: Session 5B8139230285-0001-15F2-C62ED7C4B2D1 has non-fatal exceptions: false
08-25 16:45:51.481 5618-5618/com.my_package E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.my_package, PID: 5618
java.lang.IllegalStateException: ScrollView can host only one direct child
at android.widget.ScrollView.addView(ScrollView.java:251)
at android.support.design.widget.BaseTransientBottomBar.showView(BaseTransientBottomBar.java:428)
at android.support.design.widget.BaseTransientBottomBar$1.handleMessage(BaseTransientBottomBar.java:176)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:168)
at android.app.ActivityThread.main(ActivityThread.java:5845)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)
08-25 16:45:53.654 5618-5688/com.my_package D/CrashlyticsCore: Removing report at /data/user/0/com.my_package/files/.Fabric/com.crashlytics.sdk.android.crashlytics-core/fatal-sessions/5B8139230285-0001-15F2-C62ED7C4B2D1.cls
08-25 16:45:58.626 9576-9643/com.my_package D/CrashlyticsCore: Session 5B813A670174-0002-15F2-C62ED7C4B2D1 has fatal exception: false
08-25 16:45:58.627 9576-9643/com.my_package D/CrashlyticsCore: Session 5B813A670174-0002-15F2-C62ED7C4B2D1 has non-fatal exceptions: false
No events present for session ID 5B813A670174-0002-15F2-C62ED7C4B2D1
Removing session part files for ID 5B813A670174-0002-15F2-C62ED7C4B2D1
细节:
请注意,我的是Desire 816 HTC设备,它从KitKat开始,现在升级到MarshMallow,但仍然存在KitKat的错误,例如相机不释放资源,然后在拍摄第一张照片后崩溃。
但是必须有一些解决方案来防止这种情况,例如以下解决方案:
https://stackoverflow.com/a/52014209/787399
我最诚挚的问候。
解决方案
我使用自己的答案解决了它:
当我在 onDestroy() 中使用布尔变量并对其进行检查时,我知道我不应该显示 Snackbar,因为它使用 view 作为第二个参数。解释链接:
片段 onStop() 与 onDetach()、onDestroy() 或 onDestroyView() 相同?
也因为以下链接中很好地描述的限制:
https://developer.android.com/topic/libraries/architecture/lifecycle#kotlin
快乐编码:-)
推荐阅读
- bash - Github 工作流程:将一行添加到目录树中找到的每个语言文件
- javascript - 如何通过 JavaScript 添加/更新作用域 CSS 变量
- java - java如何声明一个流不为空?
- javascript - AutoMl Tables:有没有办法更新 node.js 中的目标列?
- angular - 角度统一方法更新信息但不正确
- performance - 我是否已将这个 PowerShell 脚本编写得足够好以平衡简单性和性能?
- html - 为什么在基于 Chromium 的浏览器中的 html 元素及其后代中都存在“滚动行为:平滑”?
- java - 在 M1 Mac 上使用 quarkus 构建原生镜像失败
- django - 我可以连接 Django 模型中的两个字段来创建第三个字段作为模型的主键吗?
- c# - 调用包含两个不同基地址的多个 httpclient