我正在打开对话框片段。但是,它不会占据整个屏幕。我的意思是它留下了一些空间。
以下是我的代码:
public class MyDialogFragment extends DialogFragment implements View.OnClickListener{
private Context context = getActivity();
private ImageView imageViewCancel;
private TextView textViewTitle;
private View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.layoutfile, container, false);
getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
textViewTitle = (TextView) view.findViewById(R.id.textView_Screen_Title);
setHeader("Some title");
imageViewCancel = (ImageView) view.findViewById(R.id.imageView_Cancel);
imageViewCancel.setOnClickListener(this);
//to hide keyboard when showing dialog fragment
getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
return view;
}
private void setHeader(String screenTitle) {
textViewTitle.setText(screenTitle);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.imageView_Cancel :
dismiss();
break;
}
}
@Override
public void onStart() {
super.onStart();
getDialog().getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT);
}
}
参考快照
我想以全屏模式打开它,以便不会看到透明的背景。试过WindowManager.LayoutParams.MATCH_PARENT
& ViewGroup.LayoutParams.MATCH_PARENT
也没有效果。
答案 0 :(得分:3)
为Dialog
<style name="CustomDialog" parent="AppTheme" >
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowCloseOnTouchOutside">true</item>
</style>
然后在对话框片段中使用该样式
@Override public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(DialogFragment.STYLE_NORMAL, R.style.CustomDialog);
}
@Override public void onStart() {
super.onStart();
getDialog().getWindow()
.setLayout(WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT);
}
SampleDialogFragment sampleDialogFragment = new SampleDialogFragment();
SampleDialogFragment.show(getActivity().getSupportFragmentManager(), "sometag");
答案 1 :(得分:0)
试试这个: 在styles.xml中添加它
<style name="MY.DIALOG" parent="android:Theme" >
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowIsFloating">false</item>
</style>
并在DialogFragment中设置此样式:
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(DialogFragment.STYLE_NORMAL, R.style.MY_DIALOG);
}
对话框片段的背景将显示为黑色,根据您的需要进行更改。
有关详细信息,请参阅此帖子: http://www.techrepublic.com/article/pro-tip-unravel-the-mystery-of-androids-full-screen-dialog-fragments/