it-swarm.com.de

android: Webansicht im Dialog oder Popup

so fügen Sie die Webansicht in einem Dialog- oder Popup-Fenster hinzu.

meine Webansicht enthält die URL WebView.loadurl (). Wenn die Ansicht in einem Dialog hinzugefügt wird, wird sie immer noch in den Browser verschoben.

Ich habe in Android Webview im Dialog geladen Ist aber kein Beispiel dafür, wie es gemacht wird? Danke

43
roy.d

Hier ist ein Beispiel:

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();
115
Dmytro Danylyk

Sie müssen setWebViewClient () überschreiben.

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);
4
Rajdeep Dua

Wenn Sie versuchen, eine Webansicht in einem Popup-Fenster anzuzeigen, müssen Sie die Breite und Höhe Ihres linearen Layouts in der Layout-Datei des Popup-Fensters (popup_layout.xml) wie folgt einstellen. 

Sie müssen dies tun, da das Layout von popup nicht über ein übergeordnetes Element für die Größe verfügt, wenn Sie 'match_parent' oder so versuchen.

<?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>
1
Apoorv Jain

PopupWindow-Code:

@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);
}

Verwenden Sie popTab () wo immer Sie möchten. Hoffe das hilft beim Popup-Fenster.

0
abotrix