数据绑定中带有 if 条件的 chainStyle
chainStyle with if condition in databinding
我在使 chainStyle 依赖于来自数据的条件时遇到问题,所以如果数据为空,我需要散布链样式,否则它将被打包
<TextView
android:id="@+id/tv_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textSize="20sp"
app:layout_constraintBottom_toTopOf="@+id/textView2"
app:layout_constraintEnd_toStartOf="@+id/relativeLayout"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="@{gameState.data== null ? spread : packed }" />
找不到标识符 'spread'
检查标识符拼写是否正确,没有或标签丢失。
您必须使用 class 添加标识符。比如当你想使用条件添加可见性时。
所以您必须将 ConstraintLayout
导入您的 xml 数据中并使用它。
像这样的东西。
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="model"
type="...." />
<import type="androidx.constraintlayout.widget.ConstraintLayout.LayoutParams" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintVertical_chainStyle="@{gameState.data== null ? LayoutParams.CHAIN_SPREAD : LayoutParams.CHAIN_PACKED}"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
我在使 chainStyle 依赖于来自数据的条件时遇到问题,所以如果数据为空,我需要散布链样式,否则它将被打包
<TextView
android:id="@+id/tv_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textSize="20sp"
app:layout_constraintBottom_toTopOf="@+id/textView2"
app:layout_constraintEnd_toStartOf="@+id/relativeLayout"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="@{gameState.data== null ? spread : packed }" />
找不到标识符 'spread'
检查标识符拼写是否正确,没有或标签丢失。
您必须使用 class 添加标识符。比如当你想使用条件添加可见性时。
所以您必须将 ConstraintLayout
导入您的 xml 数据中并使用它。
像这样的东西。
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="model"
type="...." />
<import type="androidx.constraintlayout.widget.ConstraintLayout.LayoutParams" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintVertical_chainStyle="@{gameState.data== null ? LayoutParams.CHAIN_SPREAD : LayoutParams.CHAIN_PACKED}"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>