Saya bekerja di aplikasi android dan menggunakan DialogFragment untuk menampilkan dialog dan saya ingin agar DialogFragment itu tidak dapat dibatalkan. Saya telah membuat properti dialog cancelable menjadi false, tetapi tetap tidak mempengaruhi.
Silakan lihat kode saya dan sarankan saya solusi.
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;
}
}
Jawaban:
alih-alih
getDialog().setCancelable(false);
Anda harus menggunakan secara langsungsetCancelable(false);
jadi jawaban yang diperbarui akan seperti ini
sumber
Gunakan Snippet berikut
dan jika Anda ingin menonaktifkan dialog sentuh di luar sisi gunakan baris kode berikut
sumber
Jika Anda menggunakan pembuat peringatan (dan mungkin dalam setiap kasus Anda membungkus dialog di dalam DialogFragment) untuk membantu membangun dialog Anda, jangan gunakan getDialog (). SetCancelable (false) atau Dialog.setCancelable (false) karena tidak akan kerja. Gunakan setCancelable (false) seperti yang ditunjukkan pada kode di bawah ini seperti yang disebutkan dalam dokumentasi resmi android:
Ditambahkan dalam API level 11 Kontrol apakah Dialog yang ditampilkan dapat dibatalkan. Gunakan ini daripada langsung memanggil Dialog.setCancelable (boolean), karena DialogFragment perlu mengubah perilakunya berdasarkan ini. "
ref: http://developer.android.com/reference/android/app/DialogFragment.html#setCancelable(boolean)
sumber
Solusi Sederhana di DialogFragment
Bekas
sumber