Как правильно использовать компонент навигации в WebViewClient? - PullRequest
0 голосов
/ 30 июня 2019

В моем 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.Я предполагаю, что возникает проблема.Я не знаю ... У вас есть идеи ???

...