在我的Fragment(WebViewFragment)
中,其中包含WebViewClient
。
mWebView.webViewClient = MyWebViewClient(this, activity!!, mView, type, ivRefresh, refreshHandler, refreshRunnable)
我的WebViewClient
使用此行从WebViewFragment
更改为其他Fragments
。
class MyWebViewClient(private val fragment: Fragment, private val context: Context, private val mView: View, private val type: String?, private val refresh: ImageView, private val refreshHandler: Handler, private var refreshRunnable: Runnable) : WebViewClient() {
...
fun myMethod(){
fragment.findNavController().popBackStack()
fragment.findNavController().popBackStack()
}
...
}
和
fragment.findNavController().navigate(R.id.action_webViewFragment_to_mainFragment)
我尝试过:
Navigation.findNavController(mView).navigate(R.id.action_webViewFragment_to_mainFragment)
但是得到了相同的结果。
我不能在这里像这样使用它:
fragmentNavController().navigate(R.id.mainFragment)
这就是为什么我使用fragment.findNavController()
的原因。但是没用。
我收到此错误:
java.lang.IllegalStateException: View android.widget.LinearLayout{ffb46cf V.E...... ......ID 0,0-720,1238} does not have a NavController set
at b.m.B.a(Navigation.java:84)
at com.example.view.main.fragment.k.a(WebViewFragment.kt:448)
我不知道它是否相关,但是我正在使用ProGuard
。我猜它发生了问题。我不知道...你有什么想法吗?