如何在WebViewClient中正确使用导航组件?

时间:2019-06-29 23:49:43

标签: android android-fragments android-webview proguard fragmentmanager

在我的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。我猜它发生了问题。我不知道...你有什么想法吗?

0 个答案:

没有答案