自分のアプリケーションに画面全体を占めたいダイアログの断片があります。私は私のカスタムレイアウトを拡張し、このダイアログにビューを追加するために私のフラグメントを必要とするので、動的に私は以下のようにコードを書いた: -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をダイアログ全体に埋め込む方法を教えてください。