Skocz do zawartości
Majks

Jak zaimplementować data binding

    Rekomendowane odpowiedzi

    Majks

    Cześć, próbuję zaimplementować dataBinding. Do gradle dodaję:

    apply plugin: 'kotlin-kapt'
    dataBinding {
        enabled true }
    //ReactiveX
        implementation "com.jakewharton.rxbinding2:rxbinding:$rxjava2_version"
        implementation "io.reactivex.rxjava2:rxandroid:$rxandroid_version"
        implementation "io.reactivex.rxjava2:rxjava:$rxjava2_version"
        implementation 'androidx.recyclerview:recyclerview:1.0.0'
        implementation 'com.google.android.material:material:1.0.0'
    
        // Lifecycle components
        implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
        kapt "androidx.lifecycle:lifecycle-compiler:$lifecycle_version"
        androidTestImplementation "androidx.arch.core:core-testing:$lifecycle_version"
        implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0-alpha04"
    
    kapt{generateStubs = true}

     

    Wszystko tam gdzie powinno być. Fragment wygląda tak

    class MainFragment : Fragment() {
        private lateinit var binding: FragmentMainBinding
    
        override fun onCreateView(
            inflater: LayoutInflater, container: ViewGroup?,
            savedInstanceState: Bundle?
        ): View? {
            // Inflate the layout for this fragment
            binding = FragmentMainBinding.inflate(inflater)
    
            return binding.root
        }
    }

    FragmentMainBinding podświetla się na czerwono i widnieje napis "Unresolved reference: FragmentMainBinding"

    dodana zawartość

    Po przespanej nocy znalazłem rozwiązanie :) W pliku XML gdzie jest nasz layout trzeba go umieścić w:

    <layout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools">
    
          <!--nasz_layout-->
    
    </layout>

    dodana zawartość

    Po przespanej nocy znalazłem rozwiązanie :) W pliku XML gdzie jest nasz layout trzeba go umieścić w:

    <layout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools">
    
          <!--nasz_layout-->
    
    </layout>

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x