如何在警报对话框 Android 中加载现有 WebView

how to load existing webview in alert dialog android

提问人:MOHAMED SIKKANDAR AFZAL M 提问时间:12/15/2021 更新时间:12/24/2021 访问量:318

问:

我默认加载了一个 webview,页面底部有设置和 url,我需要在警报对话框中显示该现有 webview。 我不想创建新的 webview,因为我需要维护现有 webview 的状态(我的意思是,如果我单击了 webivew 中的按钮并切换了内容,那么我需要在警报对话框中显示完全相同的内容) 我试图通过在单独的布局中移动 webview 和一些文本视图来膨胀,但它在警报对话框中显示 textview,但 webview 未加载。 欢迎提出建议!!

Java Android WebView 对话框 layout-inflater

评论

0赞 Filoména Petržlénová 12/15/2021
你能发布你的代码吗?另外,为什么 webview 会在警报对话框中被嵌入?
0赞 MOHAMED SIKKANDAR AFZAL M 12/21/2021
在 Web 视图中,我可能会单击一个按钮并打开模态来显示内容,但它将显示在 Web 视图的宽度和高度右侧,我想像原生模态一样显示模态。因此,我尝试在对话框中加载现有的 WebVeiw,并仅显示模态并隐藏其余内容。他们将调用我的函数 onclosing 和 opening modal,以便我可以执行此隐藏操作并像本机模态对话框一样显示。

答:

2赞 nias fathima 12/24/2021 #1

为了清楚起见,我假设您的问题是重用布局中的现有 Web 视图并将其显示在警报对话框中。 如果是这样,您可以从原始布局中删除 Web 视图,并将其添加到警报对话框中,如下所示

WebView myWebview = findViewById(R.id.myWebView);
ViewGroup parent = (ViewGroup) myWebview.getParent();
if (parent != null) {                            
   parent.removeView(myWebview);
}
AlertDialog.Builder builder;
AlertDialog alert;
builder = new AlertDialog.Builder(this);
alert = builder.create();
alert.setView(myWebview);
alert.show();

因此,现有的 WebView 将从其布局中删除,并显示在警报对话框中。 反之亦然(从警报对话框中删除 webview 并追加到上一个布局中。

评论

0赞 MOHAMED SIKKANDAR AFZAL M 12/24/2021
谢谢,这就是我要找👍🏼的,我会做宽度、高度和隐藏的东西。多谢