0

Ich habe ein Dialogfragment in meiner Anwendung, die ich den ganzen Bildschirm einnehmen will. Da ich mein Fragment brauche mein eigenes Layout zu erweitern und Ansichten zu diesem Dialog hinzugefügt werden soll dynamisch schrieb ich den Code wie folgt: -Stellen Webview ganze Dialogfenster in Android besetzt

my_dialog.xml

<?xml version="1.0" encoding="utf-8"?> 
<com.example.MyDialogRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/dialogRootLayout" 
    android:orientation="vertical" 
    android:background="#FFFFFF" 
    > 

</com.example.MyDialogRelativeLayout> 

Jetzt in meinem Dialog Java-Klasse I schrieb: -

MyDialogFragment.java

public class MyDialogFragment extends DialogFragment { 

    WebView webView; 
    MyDialogRelativeLayout dialogLayout; 
    String url; 



    public MyDialogFragment(String url) 
    { 
     this.url = url; 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 

     View rootView = inflater.inflate(R.layout.my_custom_dialog,container, false); 


     dialogLayout = (MyDialogRelativeLayout) rootView.findViewById(R.id.dialogRootLayout); 

     return rootView; 
    } 


    @Override 
    public void onStart() { 
     // TODO Auto-generated method stub 
     super.onStart(); 
     DisplayMetrics dm = new DisplayMetrics(); 
     getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm); 
     int height = dm.heightPixels; 
     int width = dm.widthPixels; 
     Log.d("Dialog","Height = "+height+" Widht = "+width); 
     getDialog().getWindow().setLayout(width-50,height); 


     RelativeLayout.LayoutParams paramsWeb = new RelativeLayout.LayoutParams(width,height); 
     final WebView wv = new WebView(getActivity()); 
     wv.getSettings().setJavaScriptEnabled(true); 
     wv.loadUrl(url); 

     wv.setWebViewClient(new WebViewClient(){ 

      @Override 
      public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) 
       { 
        wv.loadUrl("file:///android_res/raw/nointernet.html"); 
       } 
      }); 
     dialogLayout.addView(wv,paramsWeb); 


     RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); 
     params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
     params.addRule(RelativeLayout.ALIGN_PARENT_TOP); 

     Button closeButton = new Button(getActivity()); 
     closeButton.setText("Close"); 
     closeButton.setBackground(null); 
     dialogLayout.addView(closeButton,params); 


     closeButton.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       getDialog().dismiss(); 

      } 
     }); 


    } 



    public class myWebViewClient extends WebViewClient{ 



     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
      // TODO Auto-generated method stub 
      super.onPageStarted(view, url, favicon); 
     } 

     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      // TODO Auto-generated method stub 
      view.loadUrl(url); 
      return true; 
     } 


    } 

Mein Problem ist, dass die Webansicht nicht das gesamte Fenster des Dialogs belegt, der auf den Bildschirm gezeichnet wird. Es gibt eine schwarze Ebene/einen Bereich über dem Dialog und die Webansicht ist darunter.

Wie der oberen schwarzen Teil loszuwerden und die Webansicht den ganzen Dialog füllen machen?

Antwort

0

Verwenden Sie die folgenden für die Einstellung der Höhe und Breite in Ihrem Fragmente Klasse: getDialog().getWindow().setLayout(width, height);

Für den schwarzen Teil zu entfernen (Titel), verwenden Sie die folgenden in Ihrem Fragmente Klasse: getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);