我有DialogFragment
,其中包含WebView
。我在活动中创建DialogFragment
的实例,并在其上调用show
方法。通常,这会在活动的当前视图上显示为Dialog
,但随机会将其全屏显示,就像我调用setContentView
方法一样。这是活动中的代码:
InternetDialog webDialog = new InternetDialog();
webDialog.setUrl(mRequestToken.getAuthenticationURL());
webDialog.show(getSupportFragmentManager(), "Twitter WebView");
其中InternetDialog
是一个扩展DialogFragment
并在View
方法中创建onCreateDialog
的类。我正在使用旧版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>
答案 0 :(得分:0)
这更适合作为评论,但我还不能发表评论......您是否考虑过在setStyle
中查看您对onCreate
的来电?从文档的外观来看,当您设置对话框的样式时,STYLE_NO_FRAME
可能会干扰窗口大小,因为生成的视图完全取决于onCreateView
中的膨胀视图。