如何使DialogFragment具有模态特性?

9

我有一个DialogFragment:

public static class CharacteristicDialog extends DialogFragment {
        int mNum;

        static CharacteristicDialog newInstance(int num) {
            CharacteristicDialog f = new CharacteristicDialog();            
            Bundle args = new Bundle();
            args.putInt("num", num);
            f.setArguments(args);
            return f;
        }

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            mNum = getArguments().getInt("num");
            setStyle(STYLE_NO_INPUT, 0);        
        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            View v = inflater.inflate(R.layout.characteristic_dialog, container, false);
            v.setOnClickListener(new OnClickListener() {                
            @Override
            public void onClick(View v) {
                dismiss();
            }
        });
    }

我在我的主Fragment中创建它,就像这样:

        DialogFragment newFragment = CharacteristicDialog.newInstance(v.getId());
        newFragment.setShowsDialog(true);
        newFragment.show(getFragmentManager(), "dialog");   

它展示得很好,但不是模态的(我可以在对话框两侧点击并在我的主要片段后执行操作)。
如何使它成为模态?
谢谢

我可以点击侧边并在对话框后面执行主要片段上的操作。听起来真的很奇怪...你是使用本地片段还是支持库?Actionbarsherlock? - Falmarri
我正在使用支持库,没有使用ActionBarSherlock。 - Rémy DAVID
2个回答

19

这对我起作用了。

myDialogFragment.setCancelable(false);

4

就是这样,谢谢。我使用了STYLE_NO_FRAME而不是普通的样式,因为它是一个自定义对话框。 - Rémy DAVID

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接