在我的情况下显示Dialog几乎全屏(使用ActionBar& overlay)

时间:2012-07-09 13:43:23

标签: android android-layout android-intent android-emulator android-widget

我正在使用Android Support package

我创建了一个对话框:

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

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

我有以下两个问题:

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

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

1 个答案:

答案 0 :(得分:2)

  1. 我找到的唯一可行的解​​决方案是实现基于片段的伪对话。
  2. 这种做法可能会给阴影带来一些困难。至少,我没有这样做。
  3. 代码示例怎么做(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();
    }
    }