Android 为什么我的网络视图没有';不显示任何内容并自动将我重定向到内置浏览器?

Android 为什么我的网络视图没有';不显示任何内容并自动将我重定向到内置浏览器?,android,webview,dialog,Android,Webview,Dialog,我想在对话框中显示我的web内容。它可以是普通的Dialog()或DialogFragment。我已经创建了布局: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="ma

我想在对话框中显示我的web内容。它可以是普通的
Dialog()
DialogFragment
。我已经创建了布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</RelativeLayout>
它不显示任何内容,并将我重定向到内置浏览器,如Chrome。然后我读到,有时更改根布局类型会有所帮助,并将我的
RelativeLayout
更改为
FrameLayout
——这没有帮助。然后我想问题可能和所有的布局有关,并用一些文本放置了
textView
,它显示在我的片段中。第二个变体-我从父片段中显示了
Dialog()
,我试图从父片段中显示
DialogFragment

class ShowJob : DialogFragment(), View.OnClickListener {
    var listPosition: Int? = 0
    var offset: Int? = 0
    lateinit var link: String
    val TAG = ShowJob::class.java.simpleName!!


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val bundle = arguments
        offset = bundle!!.getInt("jobOffset")
        link = bundle.getString("link")
        listPosition = bundle.getInt("listPosition", 0)
    }


    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        val view = inflater.inflate(R.layout.show_job_scr,container,false)

        val webView = view.findViewById<WebView>(R.id.webView)


        webView.loadUrl(link)
        webView.webViewClient = HelloWebViewClient()
        WebView.setWebContentsDebuggingEnabled(false)



        return view
    }

    private inner class HelloWebViewClient : WebViewClient() {
        override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
            val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
            startActivity(intent)
            return true
        }

    }

    override fun onClick(p0: View?) {
    }
}
val webDialog = Dialog(context)
webDialog.setContentView(R.layout.show_job_scr)
webDialog.setCancelable(true)

val webView = webDialog.findViewById<WebView>(R.id.webView)
!webView.isScrollbarFadingEnabled
!webView.isHorizontalScrollBarEnabled
webView.settings.javaScriptEnabled
webView.clearCache(true)
webView.loadUrl(url)

webDialog.show()
val webDialog=Dialog(上下文)
webDialog.setContentView(R.layout.show\u job\u scr)
webDialog.setCancelable(真)
val webView=webDialog.findviewbyd(R.id.webView)
!webView.isScrollbarFadingEnabled
!webView.isHorizontalScrollBarEnabled
webView.settings.javaScriptEnabled
webView.clearCache(true)
webView.loadUrl(url)
webDialog.show()

它还将我重定向到内置浏览器。我的问题在哪里?如何解决?我看到了这个示例,这里开发人员设法在对话框中显示内容。我看到了很多例子,到处都有人试图在对话框中显示web内容,但我在重定向方面遇到了一些问题。

我已经用一个解决方案解决了我的问题,该解决方案发布在问题:

 // this is the reason  webView.webViewClient = HelloWebViewClient()


  private inner class HelloWebViewClient : WebViewClient() {
    override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean 
    {
        val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
        startActivity(intent)
        return true
    }

  }
 webView.webViewClient = object : WebViewClient() {
            override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
                view.loadUrl(url)
                return false
            }
        }

我删除了内部类并在
onCreateView

中添加了这些行,因此我必须删除这个类,并在dialogFragment中显示我的webView?你能在shouldOverideUrlLoading视图?.loadUrl(request?.url.toString())@AnasMehar中添加这一行吗?我发布了我的解决方案,如果需要,您也可以检查它:)WebViewClient回调方法应该重写Alloading必须参数第一个视图:WebView,第二个是请求:WebResourceRequest?因此,您可以在回调方法override fun shouldOverrideUrlLoading(视图:WebView?,请求:WebResourceRequest?):Boolean中添加此行视图?.loadUrl(请求?.url.toString()),因为您实现它是为了将所有内容重定向到默认浏览器。您的代码正是这样做的-重定向到默认浏览器。但是现在我设法在dialogFragment中显示webView,可能是内部类的问题?