[Android,Java] 我有一个带有取消按钮(关闭警报对话框)的警报对话框以及一个网络视图。我正在尝试设置 webview,使其与父级相匹配,因为每当我打开没有特定设置大小的网页时,它都会缩小到可能的最小高度。我尝试设置 webview 的参数布局以及最小高度,但无济于事。我的代码:
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Age Verification");
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int webViewHeight = (int) Math.round(0.8 * displaymetrics.heightPixels);
int webViewWidth = (int) Math.round(0.7 * displaymetrics.widthPixels);
Log.d("Intended min size: ", webViewHeight + ", " + webViewWidth);
WebView wv = new WebView(this);
wv.loadUrl({redacted});
wv.getSettings().setJavaScriptEnabled(true);
wv.setVerticalScrollBarEnabled(true);
wv.setHorizontalScrollBarEnabled(true);
wv.setMinimumHeight(webViewHeight);
wv.setMinimumWidth(webViewWidth);
wv.getSettings().setLoadWithOverviewMode(true);
wv.getSettings().setUseWideViewPort(true);
wv.setWebChromeClient(new WebChromeClient() {
@Override
public void onPermissionRequest(final PermissionRequest request) {
request.grant(request.getResources());
}
});
wv.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest url) {
view.loadUrl(url.getUrl().toString());
if(url.getUrl().toString().contains("/close")){
finish();
}
return true;
}
});
wv.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
alert.setView(wv);
alert.setNegativeButton("Close (Will void transaction if verification incomplete)", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
startTransactionFailureDialog(VERIFICATION_FAILED);
dialog.dismiss();
}
});
AlertDialog result = alert.show();
Window window = result.getWindow();
window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
警报对话框填满了屏幕,但只是没有填满某些网站上的网络视图(我试图强制它填满警报对话框,即使该网站占用的空间更少)
现在的样子:
试试这个以获得 WebView 的最大尺寸:
webView.setLayoutParams(new RelativeLayout.LayoutParams(800, 600));