comment ajouter une vue Web dans une boîte de dialogue ou une fenêtre contextuelle.
ma vue Web contient l'URL WebView.loadurl () .Quand la vue est ajoutée dans la boîte de dialogue, elle est toujours déplacée vers le navigateur.
Je suis dans Android chargement de la vue Web dans la boîte de dialogue Mais n’existe-t-il pas un exemple de la façon de procéder?
Voici un exemple:
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();
Vous devez remplacer setWebViewClient () ..
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);
Si vous essayez d'afficher une vue Web dans une fenêtre contextuelle, vous devez définir la largeur et la hauteur de votre présentation linéaire dans le fichier de présentation de votre fenêtre contextuelle (popup_layout.xml), comme indiqué ci-dessous.
Vous devez le faire parce que la disposition de popup n'a pas de parent à référencer pour la taille lorsque vous essayez d'utiliser 'match_parent' ou autre.
<?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>
Code PopupWindow:
@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);
}
Utilisez popTab () où vous le souhaitez. J'espère que cela aide avec la fenêtre popup.