1
我有一個DialogFragment
其中包含WebView
。我在該活動中創建DialogFragment
的一個實例,並在其上調用show
方法。通常這會在活動的當前視圖上顯示爲Dialog
,但隨機會將其顯示爲全屏,就像我調用setContentView
方法一樣。下面是活動中的代碼:DialogFragment保持全屏顯示(不在對話框中)
InternetDialog webDialog = new InternetDialog();
webDialog.setUrl(mRequestToken.getAuthenticationURL());
webDialog.show(getSupportFragmentManager(), "Twitter WebView");
哪裏InternetDialog
是延伸DialogFragment
並創建onCreateDialog
方法中的View
類。我正在使用舊版Android操作系統版本的支持庫。所以,我的問題是:爲什麼DialogFragment
顯示全屏而不是對話框?
編輯:下面是InternetDialog
類的代碼:
public class InternetDialog extends DialogFragment{//the soft keyboard won't show up
private String url;
WebView webView;
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(DialogFragment.STYLE_NO_FRAME, android.R.style.Theme);
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState){
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = LayoutInflater.from(getActivity());
View v = inflater.inflate(R.layout.internet_dialog, null);
WebView web = (WebView) v.findViewById(R.id.web);
EditText edit = (EditText) v.findViewById(R.id.edit);
edit.setFocusable(true);
edit.requestFocus();
web.loadUrl(url);
this.webView = web;
builder.setView(v);
return builder.create();
}//end of onCreateDialog() method
public View getWebView(){
return webView;
}
public String getUrl(){
return this.url;
}//end of getUrl() method
public void setUrl(String url){
this.url = url;
}//end of setUrl() method
}//end of DialogFragment class
而這裏的internet_dialog
XML
文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="true"
android:visibility="invisible"/>
<WebView
android:id="@+id/web"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
等等,你是否有時會說它顯示爲對話框,但有時會顯示全屏?如果是這樣,你可以顯示你的代碼爲'InternetDialog'嗎? – kabuko
是的,這就是似乎正在發生的事情,我知道的很奇怪。我放置了「InternetDialog」類的代碼。 – chRyNaN
我很想看看'internet_dailog'佈局是什麼樣子,但是您是否嘗試過將'WebView'設置爲固定的高度和寬度?我很好奇頁面加載的時間是否影響視圖的大小。 – kabuko