android - 如何避免 Kotlin 的 WebView 显示空格?
问题描述
长话短说,我尝试使用约束、线性和相对布局来查看是否存在问题,并调整了 activity_main.xml 上的填充、边距、对齐甚至重心,它已经看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<WebView
android:id="@+id/visorweb"
style="@android:style/Widget.WebView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_gravity="center|fill|fill_horizontal"
android:layout_margin="0dp"
android:layout_marginStart="0dp"
android:layout_marginLeft="0dp"
android:layout_marginTop="0dp"
android:layout_marginEnd="0dp"
android:layout_marginRight="0dp"
android:layout_marginBottom="0dp"
android:padding="0dp"
android:paddingStart="0dp"
android:paddingLeft="0dp"
android:paddingTop="0dp"
android:paddingEnd="0dp"
android:paddingRight="0dp"
android:paddingBottom="0dp" />
</LinearLayout>
这些都不起作用。对于 WebView,我的 Main Activity 看起来也很标准,但我会展示它以防你想看:
package com.boliviachan.test9
import android.content.Intent
import android.net.Uri
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.KeyEvent
import android.webkit.WebView
import android.webkit.WebViewClient
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val myWebView: WebView = findViewById(R.id.visorweb)
myWebView.loadUrl("https://www.boliviachan.org")
myWebView.settings.javaScriptEnabled = true
myWebView.webViewClient = WebViewClient()
class MyWebViewClient : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
if (Uri.parse(url).host == "https://www.boliviachan.org") {
//Esencialmente todo lo que esté bajo el host "boliviachan.org" debería cargarse dentro de la app
return false
}
// En caso de que se abra un link externo, debe cargarse en el navegador de preferencia del usuario
Intent(Intent.ACTION_VIEW, Uri.parse(url)).apply {
startActivity(this)
}
return true
}
}
fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
// Chequea si hay historial de navegación previo y deja que el usuario vuelva hacia atrás
if (keyCode == KeyEvent.KEYCODE_BACK && myWebView.canGoBack()) {
myWebView.goBack()
return true
}
// Si no hay historial, simplemente usará cualquier función que tuviera el botón atrás por defecto
// Como por ejemplo, cerrar la app
return super.onKeyDown(keyCode, event)
}
}
}
当我在任何移动浏览器上加载该网站时,它工作得很好,但是在这个 WebView 中,它的左右两侧都是白色的,除非出现一个弹出窗口并且它实际上填满了屏幕的两侧。我能做些什么?
解决方案
推荐阅读
- python - 任何人都可以在 python 中修复我的密码生成器中的逻辑问题
- php - Laravel 8 每次查看产品,更新数组并将其保存到 cookie
- reactjs - 当请求来自组件外部时,如何让 React-Router 加载相同的页面?
- c# - 使用方法无序
- python - 仅 Python 2.7 的本地导入失败
- python - Discord.py Cogs:未定义扩展名
- python - pydirectinput没有一致地移动鼠标
- android - 滚动视图中的元素消失
- function - Julia,在函数中使用 @views 的语法
- javascript - 对象 - 添加属性