【发布时间】:2018-04-11 10:27:07
【问题描述】:
我正在尝试使用数据绑定将 layout_gravity 设置为 LinearLayout。
这是我的布局:
<?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>
<import type="android.view.Gravity" />
<variable
name="viewModel"
type="com.example.viewModel.MessageViewModel" />
</data>
<LinearLayout
android:id="@+id/messageAdapter_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="@{viewModel.isReceived ? Gravity.START : Gravity.END}"
android:orientation="vertical"
app:setBackground="@{viewModel.isReceived}">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{viewModel.content}"
android:textColor="@color/primaryTextColorInv" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:textAppearance="?android:textAppearanceSmall"
android:textColor="@color/secondaryTextColorInv"
android:textStyle="italic" />
</LinearLayout>
</LinearLayout>
</layout>
当viewModel.isReceived 为true 时,嵌套的LinearLayout 应与START 对齐,当viewModel.isReceived 为false 时应与END 对齐,但出现此错误:
Found data binding errors.
****/ data binding error ****msg:Cannot find the setter for attribute 'android:layout_gravity' with parameter type int on android.widget.LinearLayout.
是否可以在不使用@BindingAdapter 的情况下执行此操作?
【问题讨论】:
标签: android