Je montre les articles dans recyclerview et j'utilise databinding. Dans la disposition xml, j'ai une telle vue:
<include
Android:visibility="@{viewmodel.expandable ? View.VISIBLE : View.GONE}"
bind:viewmodel="@{viewmodel}"
layout="@layout/full_station_layout"/>
Cela fonctionne bien, mais j'ai un problème: lors de l'initialisation du recyclage et de la liaison des éléments aux vues, cette disposition clignote une fois à l'écran, bien que la valeur initiale viewmodel.expandable soit fausse. J'ai donc décidé de masquer temporairement cette disposition et j'ai essayé d'utiliser le paramètre par défaut - en xml comme ceci:
<include
Android:visibility="@{viewmodel.expandable ? View.VISIBLE : View.GONE, default=View.GONE}"
bind:viewmodel="@{viewmodel}"
layout="@layout/full_station_layout"/>
Mais quelque chose s'est mal passé:
error: 'View' is incompatible with attribute Android:visibility (attr) enum [gone=2, invisible=1, visible=0].
Donc, ou j'utilise incorrectement ce paramètre ou Google supprime ce mot-clé des règles de liaison de données xml (j'ai vu un exemple d'utilisation par défaut - mot-clé en xml sur les développeurs Google auparavant, mais maintenant je ne pouvais pas)
Vous pouvez définir gone
, visible
, invisible
dans la propriété default
. Remplacez par ci-dessous.
<include
Android:visibility="@{viewmodel.expandable ? View.VISIBLE : View.GONE, default=gone}"
bind:viewmodel="@{viewmodel}"
layout="@layout/full_station_layout"/>
Vérifiez si vous avez déjà importé la classe View.
<data>
<import type="Android.view.View"/>
<variable ..... />
</data>
En outre, la syntaxe correcte par défaut pour la valeur par défaut pour la visibilité est default=gone
, non default=View.GONE