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?