<variable name="hoge_text" type="String">
Als,
<variable name="hogeText" type="String">
Die Geschichte, von der ich nicht glaube, dass ich in Schwierigkeiten bin. Weil ich süchtig danach war.
"Als ich versuchte, die Variable snake_case in der Datei"
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
<Übergeordnetes Element weggelassen>
<include
layout="@layout/child"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:value_text="@{someVariable}"/>
</Übergeordnetes Element weggelassen>
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;
// ~~~Abkürzung~~~
this.mboundView.setValue_text(someVariableGetValue); // <-Du! !!
Error:Symbol kann nicht gefunden werden
this.mboundView3.setValue_text(someVariableGetValue);
^
Symbol:Methode setValue_text(String)
Der vom Attribut app: snake_case
generierte Funktionsname lautet also
Der Build schlägt fehl, da er sich von dem durch <variable name =" snake_case ">
generierten Funktionsnamen unterscheidet.
Ich fühle mich wie "Was ist dann mit" app: camelCase "&"
Wie ich am Anfang schrieb.
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
<Übergeordnetes Element weggelassen>
<include
layout="@layout/child"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:valueText="@{someVariable}"/>
</Übergeordnetes Element weggelassen>
Lassen Sie uns die Definition in camelCase ändern.
Ich glaube nicht, dass es so viel gesagt wurde,
Ich habe auch im Beispiel Official nach einem Variablennamen mit zwei Wörtern gesucht. Es war 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>
Es besteht das Gefühl, dass dieser Bereich (dann lautet die ID der Ressource auch camelCase?) Selbst im von Google bereitgestellten Code nicht konsistent ist. Es scheint also, dass dies seit langer Zeit ein kleines Thema ist.
Recommended Posts