如何从viewModel中获取xml中的属性视图

问题描述

我有3个文件(活动,viewmodel,XML)

我使用MVVM并将XML连接到viewmodel。

val_mape

viewmodel.class

<?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="viewmodel"
            type="com.example.Mainviewmodel"/>
    </data>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <androidx.appcompat.widget.AppCompatTextView
            android:id="@+id/priceTv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@={viewmodel.price}"/>
        
    </androidx.constraintlayout.widget.ConstraintLayout>
</layout>

在活动中,我将XML连接到以查看模型

open class Mainviewmodel : viewmodel() {

    val price = mutablelivedata<String>()
    val priceTextViewWidth = mutablelivedata<Int>()

}

我可以在View Model中使用更改价格变量来更新Textview,但是 我需要将TextView宽度传递给viewmodel中的priceTextViewWidth

解决方法

替换:

android:layout_width="wrap_content"

使用

android:layout_width="@{viewModel.priceTextViewWidth}"