问题描述
我在屏幕顶部有一个 DialogFragment:
我想像往常一样看到状态栏,没有覆盖(同时在屏幕的其余部分保留它) 这就是我在 AppCompatDialog 中尝试的,但没有成功:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Window window = getwindow();
if (window != null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYstem_BAR_BACKGROUNDS);
}
window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);
}
}
有什么想法吗?
解决方法
通常,当您显示一个对话框时,它的背景中有一个阴影。我建议不要将 API 窗口与 clearFlags/addFlags 一起使用,因为它们有时会有点混乱,而是直接删除此阴影。
假设你的对话框变量是dialog,你只需在它上面调用这个方法并且你已经移除了阴影:
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);