Android 在我的案例中,几乎全屏显示对话框(带有ActionBar和overlay)

Android 在我的案例中,几乎全屏显示对话框(带有ActionBar和overlay),android,android-layout,android-intent,android-emulator,android-widget,Android,Android Layout,Android Intent,Android Emulator,Android Widget,我和你一起工作 我创建了一个对话框: Dialog dialog = new Dialog(activity, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen); 因为我希望对话框以全屏显示,所以我将主题主题_半透明_NoTitleBar_全屏应用于它&它可以工作 我有以下两个问题: 我希望我的对话框仍然像全屏一样显示,但是顶部的操作栏不被它覆盖,那么我应该使用什么主题呢 如何使用灰色叠加显示对话框覆盖的视图(假设我的第一个问题已

我和你一起工作

我创建了一个对话框:

Dialog dialog = new Dialog(activity, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);
因为我希望对话框以全屏显示,所以我将主题
主题_半透明_NoTitleBar_全屏
应用于它&它可以工作

我有以下两个问题:

  • 我希望我的对话框仍然像全屏一样显示,但是顶部的操作栏不被它覆盖,那么我应该使用什么主题呢

  • 如何使用灰色叠加显示对话框覆盖的视图(假设我的第一个问题已解决)

  • 我找到的唯一可行的解决方案是基于片段实现伪对话框
  • 这种方法可能会造成一些困难。至少,我没有那样做
  • 代码示例如何操作(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();
    }
    }