Android

Bağlama ve Veri Bağlama Gotchas’ı Görüntüle

Diyelim ki aşağıdaki gibi bir parça düzeniniz var ve projenize bir Görünüm Bağlama eklemek istiyorsunuz.

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent">  

    <TextView  android:id="@+id/textView"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:text="TextView" />  

</LinearLayout>

Görünüm Bağlamayı Etkinleştir

Bunu etkinleştirirsiniz viewBinding senin içinde build.gradle(module).

buildFeatures {  
    viewBinding true  
}

Ardından, parça düzenini şişirirsiniz. onCreateView()

override fun onCreateView(  
    inflater: LayoutInflater, container: ViewGroup?,  
  savedInstanceState: Bundle?  
): View? {  

  val binding = FragmentFirstBinding.inflate(inflater)  
    
  val textView = binding.textview  
  return binding.root   
}

Artık şuraya erişebilirsiniz: textView itibaren binding kullanmadan findViewById(). Daha sonra, verilerinizi düzene bağlamak istiyorsunuz.

Veri Bağlamayı Etkinleştir

sen değiştir viewBinding ile birlikte dataBinding aşağıdaki gibi:

buildFeatures {  
    dataBinding true  
}

Ardından, kodunuz aniden bu hatayla derlenmiyor:

Unresolved reference: FragmentFirstBinding

Peki ne oldu? Bunun nedeni, kullandığınız zaman dataBinding, FragmentFirstBinding otomatik olarak oluşturulmaz, bir tanımlamanız gerekirlayout parça düzeninizdeki kök etiketi.

ihtiyacın var layout Kök Etiketi

<?xml version="1.0" encoding="utf-8"?>  
<layout xmlns:android="http://schemas.android.com/apk/res/android">  

     <LinearLayout android:orientation="vertical"  
          android:layout_width="match_parent"  
          android:layout_height="match_parent">  

              <TextView  
                  android:id="@+id/textView"  
                  android:layout_width="match_parent"  
                  android:layout_height="wrap_content"  
                  android:text="TextView" />   

     </LinearLayout>

</layout>

Diğer düzenler düzen kök etiketini tanımlamadığı için hala başka hatalar olduğunun farkındasınız. Bu durumda burada 2 seçeneğiniz var.

  • Düzen kök öğesini tüm düzenlerinize ekleyin
  • Her ikisini de etkinleştir viewBinding ve dataBinding

Hem Görünümü hem de Veri Bağlantılarını Etkinleştir

kullandığınızda dataBindingtüm mizanpajların verileri bağlaması gerekmez ve layout root etiketi (gerekli değildir), her iki seçeneği de açabilirsiniz.

buildFeatures {  
    viewBinding true
    dataBinding true  
}

Özet

hala ihtiyacım var mı viewBinding zaten etkinleştirdiysem dataBinding Android projemde?

Cevap hayır eğer layout tüm düzen dosyalarınızda kök etiketi tanımlandı. Buna da ” denirVeri Bağlama Düzeni“. Aksi takdirde, cevap EVET’tir.

Ayrıca bakınız

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Başa dön tuşu