在我的情况下显示Dialog几乎全屏(使用ActionBar和叠加)

Lee*_*fin 6 android android-widget android-emulator android-intent android-layout

我正在使用Android支持包.

我创建了一个对话框:

Dialog dialog = new Dialog(activity, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);
Run Code Online (Sandbox Code Playgroud)

由于我希望对话框以全屏显示,所以我将主题Theme_Translucent_NoTitleBar_Fullscreen应用于它并且它起作用.

我有以下两个问题:

  1. 我希望我的对话框显示为全屏仍然但是不能覆盖顶部的ActionBar,那么我应该使用什么主题?

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

Ext*_*r13 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();
}
}
Run Code Online (Sandbox Code Playgroud)