Rozszerzenia Kotlin na Androida zostały wycofane, co oznacza, że do wiązania widoków nie można już używać syntetyki Kotlin. Jeśli Twoja aplikacja wykorzystuje syntetyczne Kotlin do wiązania widoków, skorzystaj z tego przewodnika, aby przejść do powiązania widoku Jetpack.
Jeśli Twoja aplikacja nie wykorzystuje jeszcze technologii syntetycznej Kotlin do wiązania widoków danych, zapoznaj się z sekcją Powiązanie widoku, aby uzyskać podstawowe informacje o wykorzystaniu.
Aktualizowanie pliku Gradle
Podobnie jak w przypadku rozszerzeń na Androida, wiązanie widoku Jetpack jest włączone na podstawie poszczególnych modułów. W przypadku każdego modułu, który używa powiązania widoku, ustaw opcję kompilacji viewBinding
na true
w pliku build.gradle
na poziomie modułu:
Odlotowy
android { ... buildFeatures { viewBinding true } }
Kotlin
android { ... buildFeatures { viewBinding = true } }
Jeśli Twoja aplikacja nie korzysta z funkcji Parcelable
, usuń wiersz włączający rozszerzenia Kotlin na Androida:
Odlotowy
plugins { id 'kotlin-android-extensions' }
Kotlin
plugins { kotlin("android.extensions") }
Więcej informacji o włączaniu powiązania widoków w module znajdziesz w instrukcjach konfiguracji.
Aktualizowanie klas aktywności i fragmentów
W przypadku powiązania widoku Jetpack klasa powiązania jest generowana dla każdego pliku układu XML zawartego w module. Nazwa tej klasy powiązania to nazwa pliku XML (w przypadku formatu Pascal) ze słowem Binding dodanym na końcu. Jeśli np. nazwa pliku szablonu to result_profile.xml
, nazwa wygenerowanej klasy powiązania to ResultProfileBinding
.
Aby odwoływać się do widoków za pomocą wygenerowanych klas wiązań zamiast właściwości syntetycznych, zmień klasy aktywności i fragmentów, wykonując te czynności:
Usuń wszystkie importy z:
kotlinx.android.synthetic
.Wzmocnij instancję wygenerowanej klasy powiązania dla działania lub fragmentu do użycia.
- W przypadku działań postępuj zgodnie z instrukcjami podanymi w artykule Używanie powiązań widoków w działaniach, aby powiększyć instancję w metodzie
onCreate()
działania. - W przypadku fragmentów postępuj zgodnie z instrukcjami w artykule Używanie wiązania widoku w fragmentach, aby powiększyć instancję w metodzie
onCreateView()
danego fragmentu.
- W przypadku działań postępuj zgodnie z instrukcjami podanymi w artykule Używanie powiązań widoków w działaniach, aby powiększyć instancję w metodzie
Zmień wszystkie odwołania do widoku, aby używać instancji klasy powiązania zamiast właściwości syntetycznych:
// Reference to "name" TextView using synthetic properties.
name.text = viewModel.nameString
// Reference to "name" TextView using the binding class instance.
binding.name.text = viewModel.nameString
Więcej informacji znajdziesz w sekcji Użycie w przewodniku po wiązaniach widoków.
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy JavaScript jest wyłączony
- Wyświetl powiązanie
- Omówienie biblioteki stronicowania
- Testowanie implementacji stronicowania