<variable name="hoge_text" type="String">
Que,
<variable name="hogeText" type="String">
L'histoire que je ne pense pas avoir de problèmes. Parce que j'en étais accro.
"Quand j'ai essayé d'utiliser la variable de snake_case dans le fichier <include>
, je ne pouvais pas y accéder. "
child.xml
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="value_text"
type="String" />
</data>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{value_text}"/>
</layout>
parent.xml
<Élément parent omis>
<include
layout="@layout/child"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:value_text="@{someVariable}"/>
</Élément parent omis>
ChildBindingImpl.java
public void setValueText(@Nullable java.lang.String ValueText) {
this.mValueText = ValueText;
synchronized(this) {
mDirtyFlags |= 0x2L;
}
notifyPropertyChanged(BR.value_text);
super.requestRebind();
}
ParentBindingImpl.java
@Nullable
private final app.package.name.databinding.ChildBinding mboundView;
// ~~~Abréviation~~~
this.mboundView.setValue_text(someVariableGetValue); // <-Tu! !!
Erreur:Impossible de trouver le symbole
this.mboundView3.setValue_text(someVariableGetValue);
^
symbole:Méthode setValue_text(String)
Ainsi, le nom de la fonction généré par l'attribut ʻapp: snake_caseest La construction échouera car il est différent du nom de la fonction généré par
Je me sens comme "Then ʻapp: camelCase &
Comme je l'ai écrit au début.
child.xml
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="valueText"
type="String" />
</data>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{valueText}"/>
</layout>
parent.xml
<Élément parent omis>
<include
layout="@layout/child"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:valueText="@{someVariable}"/>
</Élément parent omis>
Changeons la définition en camelCase.
Je ne pense pas que cela ait été tellement dit, J'ai également recherché un nom de variable de deux mots dans l'exemple Official. C'était camelCase. (ʻUserList`)
<data>
<import type="com.example.User"/>
<import type="java.util.List"/>
<variable name="user" type="User"/>
<variable name="userList" type="List<User>"/>
</data>
On a le sentiment que cette zone (alors l'identifiant de la ressource est aussi camelCase?) N'est pas cohérente même dans le code fourni par Google, il semble donc que ce soit un petit sujet depuis longtemps.
Recommended Posts