Utilisation de la bibliothèque de liaison de données. Enveloppez ensuite votre mise en page XML avec <layout>
étiquette
activité_main.xml
<?xml version="1.0" encoding="utf-8"?>
<layout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
...
<include
android:id="@+id/toolbar"
layout="@layout/toolbar" />
...
</LinearLayout>
</layout>
toolbar.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/ivImage"
... />
<TextView
android:id="@+id/tvTitle"
... />
</LinearLayout>
MainActivity.kt
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
// Access include layout views
binding.toolbar.rootView.ivImage.setImageResource(R.drawable.ic_back_arrow)
binding.toolbar.rootView.tvTitle.text = getString(R.string.home)
...
}
0 votes
L'autre moyen simple serait d'utiliser la bibliothèque de liaison de données. Enveloppez ensuite votre mise en page XML avec la balise <layout> pour que, si vous utilisez la bibliothèque, celle-ci génère automatiquement les classes nécessaires pour lier les vues de la mise en page avec vos objets de données. Honnêtement, je pense que c'est la voie à suivre. Suivez le guide aquí
1 votes
Bonjour, j'ai écrit un article de blog expliquant complètement la liaison de vue et la manipulation de la balise incluse avec la vérification des mises en page de fusion et d'inclusion. Androidbites|ViewBinding
0 votes
Je suis un peu coincé ici : stackoverflow.com/questions/67808297/
0 votes
Au fait, pour tous ceux qui se demandent comment utiliser la liaison de vue pour mettre en place l'élément logo d'appbar il suffit d'utiliser l'objet de soumission comme : binding.toolbar.setLogo(R.drawable.bar_logo) ; . Les changements de "binding" et "bar_logo" selon vos besoins.