1. ホーム
  2. android

[解決済み] DialogFragment の setCancelable プロパティが機能しない

2022-05-17 21:47:39

質問

アンドロイドアプリケーションで、ダイアログを表示するためにDialogFragmentを使用していますが、そのDialogFragmentをキャンセルできないようにしたいのです。ダイアログのcancelableプロパティをfalseにしましたが、それでも効果がありません。

私のコードを見て、解決策を提案してください。

public class DialogTest extends DialogFragment {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

        return super.onCreateDialog(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.dialog_test, container, true);
        getDialog().requestWindowFeature(STYLE_NO_TITLE);
        getDialog().setCancelable(false);

        return view;
    }
 }

どのように解決するのですか?

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.dialog_test, container, true);
    getDialog().requestWindowFeature(STYLE_NO_TITLE);
    getDialog().setCancelable(false);

    return view;
}

の代わりに getDialog().setCancelable(false); を直接使う必要があります。 setCancelable(false);

というわけで、更新された答えは次のようになります。

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.dialog_test, container, true);
    getDialog().requestWindowFeature(STYLE_NO_TITLE);
    setCancelable(false);

    return view;
}