我的应用程序背后的想法很简单。只有两个选项卡:音乐闹钟和历史日历。
当用户使用底部导航栏在选项卡之间来回切换时,可能在切换两到三次后,片段会变成空白,并且向用户呈现一个空屏幕。
我猜问题可能出在fragment的生命周期上,但不确定。
包含提到的问题的完整代码可以在这里找到:
https://github.com/shahab-devint/musical_alarm_calendar
非常感谢任何帮助或见解:)
你是在模拟器上测试的还是在真机上测试的?
当我检查您的代码时,我没有遇到空屏错误。但我发现,当我在选项卡之间快速切换时,您的 onPageFinished 回调中存在空指针异常。
您需要使用
view?.
而不是 binding.
这是更新后的代码。
override fun onPageFinished(view: WebView?, url: String?) {
// Add JavaScript interface
view?.addJavascriptInterface(object : Any() {
@android.webkit.JavascriptInterface
fun passPersianDate(date: String) {
// This method should receive the Persian date from JavaScript
val persianDate = date
val dateText = "تاریخ شمسی: $persianDate - Gregorian Date: $gregorianDate"
binding.dateTextView.text = dateText
}
}, "JSInterface")
// Execute your JavaScript here after the page has loaded
view?.evaluateJavascript("const options = { year: 'numeric', month: 'long', day: 'numeric' }; const persianDate = new Date().toLocaleDateString('fa-IR', options); JSInterface.passPersianDate(persianDate);", null)
}