在数据绑定中使用 if 条件的 chainStyle



我在使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 }" />

找不到标识符"传播">

检查标识符拼写是否正确,以及是否缺少 OR 标记。

您必须使用它的类添加标识符。 就像您想使用条件添加可见性时一样。

因此,您必须在使用它时将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>

相关内容

  • 没有找到相关文章

最新更新