0

自分のアプリケーションに画面全体を占めたいダイアログの断片があります。私は私のカスタムレイアウトを拡張し、このダイアログにビューを追加するために私のフラグメントを必要とするので、動的に私は以下のようにコードを書いた: -WebviewがAndroidのダイアログウィンドウ全体を占めるようにする

my_dialog.xml私のダイアログのJavaクラスI内部の今

<?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> 

書いた: -

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


    } 

私の問題は、webview doesnotは、画面に描画されるダイアログの全体のウィンドウを占めていないことです。ダイアログの上部に黒いレイヤー/エリアがあり、その下にウェブビューがあります。

黒い部分を取り除き、webviewをダイアログ全体に埋め込む方法を教えてください。

答えて

0

あなたのフラグメントのクラス内の高さと幅を設定するため、次を使用します。黒い部分(タイトル)を除去するためgetDialog().getWindow().setLayout(width, height);

は、あなたのフラグメントのクラスで次のコマンドを使用します。getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);

関連する問題