DialogFragment, bir
oluşturma ve barındırma için tasarlanmış özel parça alt sınıfı
iletişim kutuları. Bir proje yöneticisine
iletişim kutunuzu bir parça içinde barındırmak,
FragmentManager eyaleti yönetme
yapılandırıldığında iletişim kutusunu otomatik olarak geri yükler.
olduğunu öğrenmiştik.
DialogFragment oluşturma
DialogFragment oluşturmak için
DialogFragment ve
geçersiz kılma
onCreateDialog(),
aşağıda gösterildiği gibidir.
Kotlin
class PurchaseConfirmationDialogFragment : DialogFragment() { override fun onCreateDialog(savedInstanceState: Bundle?): Dialog = AlertDialog.Builder(requireContext()) .setMessage(getString(R.string.order_confirmation)) .setPositiveButton(getString(R.string.ok)) { _,_ -> } .create() companion object { const val TAG = "PurchaseConfirmationDialog" } }
Java
public class PurchaseConfirmationDialogFragment extends DialogFragment { @NonNull @Override public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { return new AlertDialog.Builder(requireContext()) .setMessage(getString(R.string.order_confirmation)) .setPositiveButton(getString(R.string.ok), (dialog, which) -> {} ) .create(); } public static String TAG = "PurchaseConfirmationDialog"; }
Benzer
onCreateView()
onCreateDialog() normal bir parçada bir kök View oluşturur
görüntülenecek bir Dialog oluşturur
DialogFragment kapsamındadır. DialogFragment, aşağıdakileri gösterebilir:
Dialog, parçanın yaşam döngüsünde uygun durumlarda.
onCreateView() öğesinde olduğu gibi, Dialog öğesinin herhangi bir alt sınıfını döndürebilirsiniz
onCreateDialog() tarafından sunulmaktadır ve kullanımla sınırlı değildir
AlertDialog.
DialogFragment'ı göster
Aşağıdaki işlemler için manuel olarak FragmentTransaction oluşturmanız gerekmez:
DialogFragment gösterilmelidir. Bunun yerine, show() yöntemini kullanarak
iletişim kutusu görüntülenir. Bir FragmentManager öğesine referans aktarabilirsiniz
ve FragmentTransaction etiketi olarak kullanılacak bir String.
Oluştururken
Fragment içindeki bir DialogFragment için parçanın
durumu düzgün şekilde geri yüklemek için alt FragmentManager
yapılandırma değişikliklerinden sonra. Null olmayan bir etiket,
DialogFragment öğesini daha sonra almak için findFragmentByTag().
Kotlin
// From another Fragment or Activity where you wish to show this // PurchaseConfirmationDialogFragment. PurchaseConfirmationDialogFragment().show( childFragmentManager, PurchaseConfirmationDialog.TAG)
Java
// From another Fragment or Activity where you wish to show this // PurchaseConfirmationDialogFragment. new PurchaseConfirmationDialogFragment().show( getChildFragmentManager(), PurchaseConfirmationDialog.TAG);
üzerinde daha fazla kontrol
FragmentTransaction
URL adresini
show()
mevcut bir FragmentTransaction ile aşırı yüklenme
DialogFragment yaşam döngüsü
DialogFragment, standart parça yaşam döngüsünü izler.
birçok ek yaşam döngüsü geri çağırması içerir. En
yaygın olanları şunlardır:
onCreateDialog(): parçaya birDialogsağlamak için bu geri çağırmayı geçersiz kılın ve görüntüleyebilirsiniz.onDismiss(): aşağıdaki işlemler için özel mantık gerçekleştirmeniz gerekirse bu geri çağırmayıDialogaboneliğiniz kapatılır (ör. kaynak serbest bırakma veya abonelikten çıkma) sağlayabilir.onCancel():Dialogiptal edildi.
DialogFragment, iptal edilebilirliği kapatma veya ayarlama yöntemleri de içerir
DialogFragment için:
dismiss(): parçayı ve iletişim kutusunu kapatın. Parça, bu girişe kadarki tüm arka yığın durumları pop-up ile açılır. Aksi takdirde, parçayı kaldırmak için yeni bir işlem yapılır.setCancelable(): gösterilenDialogişleminin iptal edilebilir olup olmadığını kontrol eder. Bu yöntemi kullan doğrudan telefon etmek yerineDialog.setCancelable(boolean).
Geçersiz kılmazsanız
onCreateView()
veya
onViewCreated()
(Dialog) ile DialogFragment kullanırken. İletişim kutuları
kendi pencereleri vardır. Bu nedenle,
onCreateView() Ayrıca, onViewCreated() hiçbir zaman
özel DialogFragment, onCreateView() ve
boş olmayan bir görünüm sağladı.
Özel görünümleri kullanma
Bir DialogFragment oluşturabilir ve geçersiz kılarak bir iletişim kutusu görüntüleyebilirsiniz
onCreateView()
Tipik bir parçada olduğu gibi bir layoutId verebilir veya
DialogFragment oluşturucu.
View, onCreateView() tarafından iade edildi
otomatik olarak iletişim kutusuna eklenir. Çoğu durumda bu, sizin için
geçersiz kılmaya gerek yoktur
onCreateDialog()
Varsayılan boş iletişim kutusu görünümünüzle doldurulduğundan emin olun.
DialogFragment öğesinin belirli alt sınıfları; örneğin
BottomSheetDialogFragment,
görüntünüzü alt sayfa stilinde bir iletişim kutusuna yerleştirebilirsiniz.