如何在对话框或弹出窗口中添加 Web View。
我的 Web View 保存了 URL WebView.loadurl()。但是当将视图添加到对话框内时,它仍然会跳转到浏览器。
我曾经看过 android loading webview in dialog,但没有提供具体的操作示例。谢谢。
如何在对话框或弹出窗口中添加 Web View。
我的 Web View 保存了 URL WebView.loadurl()。但是当将视图添加到对话框内时,它仍然会跳转到浏览器。
我曾经看过 android loading webview in dialog,但没有提供具体的操作示例。谢谢。
这是一个例子:
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Title here");
WebView wv = new WebView(this);
wv.loadUrl("http:\\www.google.com");
wv.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
alert.setView(wv);
alert.setNegativeButton("Close", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
alert.show();
mWebView = (WebView) view.findViewById(R.id.wv1);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
});
mWebView.loadUrl(mUrl);
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="400dp"
android:layout_height="400dp"
android:background="#FAFAFA"
android:id="@+id/popup_layout"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:id="@+id/txtclose"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_gravity="end"
android:background="@color/colorPrimaryDark"
android:text="X"
android:textColor="@color/main_yellow"
android:textStyle="bold" />
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/externalUrl"/>
</LinearLayout>
弹出窗口代码:
@Override
public void onWindowFocusChanged(boolean hasFocus)
{
try
{
int[] location = new int[2];
(xml item where you want it to appear).getLocationOnScreen(location);
//Get x and y positions
p = new Point();
p.x = location[0];
p.y = location[1];
}
catch (Exception e)
{
e.printStackTrace();
}
}
private void popTab(final Activity myActivity)
{
popupWidth = 350;
popupHeight = 600;
popup.setWidth(popupWidth);
popup.setHeight(popupHeight);
// Inflate the popup_layout.xml
LinearLayout viewGroup = (LinearLayout) myActivity.findViewById(R.id.myMainLayoutID);
LayoutInflater layoutInflater = (LayoutInflater) myActivity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layoutTab = layoutInflater.inflate(R.layout.mylayout, viewGroup);
//Get webview from xml
WebView wv = (WebView)layoutTab.findViewById(R.id.webView2);
// Creating the PopupWindow
final PopupWindow popup = new PopupWindow(layoutTab);
//Set to view
popup.setContentView(layoutTab);
//Setup webview
wv.loadUrl("http:\\www.google.com");
wv.setWebViewClient(new WebViewClient()
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
});
//Add some animation from style folder
popup.update();
popup.setAnimationStyle(R.style.Animation);
popup.setFocusable(true);
popup.showAtLocation(layoutTab, Gravity.NO_GRAVITY, p.x, p.y);
}
在任何需要的地方使用popTab()。希望这对弹出窗口有所帮助。