在我的情况下几乎全屏显示对话框(带有动作栏和叠加层)



我正在使用Android支持包。

我创建了一个对话框:

Dialog dialog = new Dialog(activity, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);

由于我希望对话框以全屏显示,所以我将主题Theme_Translucent_NoTitleBar_Fullscreen应用于它&它是有效的。

我有以下两个问题:

  1. 我希望我的对话框仍然像全屏一样显示,但不让顶部的ActionBar被它覆盖,那么我应该使用什么主题?

  2. 如何使用灰色覆盖来显示对话框覆盖的视图(假设我的第一个问题已经解决)?

  1. 我找到的唯一可行的解决方案是实现基于片段的伪对话框
  2. 这种方法可能会给阴影处理带来一些困难。至少,我没有那样做

代码示例如何做(1):

public class MyDialog extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    // ... your code
}
public void show(FragmentManager fragmentManager) {
    FragmentTransaction ft = fragmentManager.beginTransaction();
    String tag = MyDialog.class.getName();
    ft.add(android.R.id.content, this, tag);
    ft.commit();
}
private void dismiss() {
    FragmentTransaction ft = getFragmentManager().beginTransaction();
    ft.remove(this);
    ft.commit();
}
}

最新更新