Lit*_*nny 10 android fullscreen android-dialogfragment
您好我试图将该主题覆盖到dialogFragment全屏,但我想要的全屏是上一个活动的叠加层,所以当打开dialogFragment时,我们仍然可以看到屏幕和dialogFragment之间填充的活动.
这是我用于全屏的风格
<style name="fullscreen_dialog" parent="android:Theme" >
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowIsFloating">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)
dro*_*dev 43
这是我想出来处理你的问题的解决方案:
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog dialog = super.onCreateDialog(savedInstanceState);
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
return dialog;
}
@Override
public void onStart() {
super.onStart();
Dialog dialog = getDialog();
if (dialog != null) {
dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
}
}
Run Code Online (Sandbox Code Playgroud)
Ahs*_*rsi 14
以下解决方案适合我.
为Fragment Dialog创建样式,如下所示:
<style name="dialog_theme" parent="android:Theme" >
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)
创建您的java类如下:
public class FiltersDialogFragment extends android.support.v4.app.DialogFragment {
static FiltersDialogFragment newInstance() {
FiltersDialogFragment fragment = new FiltersDialogFragment();
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(DialogFragment.STYLE_NORMAL, R.style.dialog_theme);
}
@Override
public void onStart() {
super.onStart();
Dialog d = getDialog();
if (d!=null){
int width = ViewGroup.LayoutParams.MATCH_PARENT;
int height = ViewGroup.LayoutParams.MATCH_PARENT;
d.getWindow().setLayout(width, height);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.dialog_filters, container, false);
return view;
}
}
Run Code Online (Sandbox Code Playgroud)
快乐的编码!
你也可以这样做 -
@Override
public void onCreate(@Nullable final Bundle savedInstanceState) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
setStyle(STYLE_NO_TITLE, android.R.style.Theme_Material_Light_NoActionBar_Fullscreen);
} else {
setStyle(STYLE_NO_TITLE, android.R.style.Theme_DeviceDefault_Light_NoActionBar);
}
super.onCreate(savedInstanceState);
}
Run Code Online (Sandbox Code Playgroud)
您可以像这样在代码中手动设置布局参数。希望能帮助到你 !:)。另请检查此SO调整android中自定义对话框的大小
Window window = myDialog.getWindow();
window.setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30947 次 |
| 最近记录: |