我有一个MVVMCross应用程序,其中我想要更新的Alpha值时,用户 Select 了一些值超过预期的一个.

我有文本视图,下面是代码.

    <TextView
    style="@style/B1.TextView"
    android:layout_width="32dp"
    android:layout_height="32dp"
    android:background="@drawable/shape_circle_bluescale1"
    android:gravity="center"
    android:text="@string/plus"
    android:textColor="@color/bluescale4"
    app:MvxBind="Click IncrementQuantityCommand; Alpha QtyAlpha;"/>

我的视图模型中有一个public float QtyAlpha,我想在运行时更新下面的方法,但它没有更新.方法被调用,但在Android UI中不更新值.

View Model方法来更新TextView的Alpha.

    public void SetQuantityCount(int qty, float alpha = 1.0f)
    {
        Qty = qty.ToString();
        QtyAlpha = alpha;
    }

它正在iOS用户界面中进行更新.

请给我指点我做错的绑定值.

先谢谢你.

推荐答案

May MvvmCross没有对直接绑定TextView的Alpha属性的内置支持. 为此,您需要创建自定义绑定.

创建自定义绑定:

public class AlphaTextViewTargetBinding : MvxAndroidTargetBinding<TextView, int>
{
    public BackgroundViewTargetBinding(TextView view) : base(view)
    {
    }

    // Alpha from 0 to 255
    protected override void SetValueImpl(TextView target, int value)
    {
        target.Alpha = value;
    }

    public override MvxBindingMode DefaultMode => MvxBindingMode.OneWay;
}

注册自定义绑定(Setup.cs)

protected override void FillTargetFactories(IMvxTargetBindingFactoryRegistry registry)
{
            base.FillTargetFactories(registry);

            registry.RegisterFactory(new MvxCustomBindingFactory<TextView>("Alpha",
                view => new AlphaTextViewTargetBinding(view)));
}

在XML中使用自定义绑定:

<TextView
    style="@style/B1.TextView"
    android:layout_width="32dp"
    android:layout_height="32dp"
    android:background="@drawable/shape_circle_bluescale1"
    android:gravity="center"
    android:text="@string/plus"
    android:textColor="@color/bluescale4"
    app:MvxBind="Click IncrementQuantityCommand; Alpha QtyAlpha;"/>

我目前正在使用MvvmCross版本8.0.2进行演示 目的.请注意,覆盖方法可能有所不同,具体取决于 正在使用的版本.

希望它能帮上忙!

Android相关问答推荐

Android Kotlin DSL Gradle找不到自定义存储库中的依赖项

用于小部件泄漏警告的伙伴对象中的Kotlin Lateinit

Kotlin Android VS Kotlin多平台

从安卓S原生库的资源中读取json文件

在java android studio项目上安装mapbox

使用 Gadle kotlin 为多模块 Android 代码库设置 jacoco

Material 3的MaterialSwitch默认大小太大了?如何使它变小?

为什么我收到这个错误我需要安装 android studio

在 theme.xml 中使用 android:autoCompleteTextViewStyle

组成不重叠的元素

单击过go 的文章时 NewsApp 崩溃

viewModel 的可变值状态不起作用

无法通过 retrofit 解析对 kotlin 数据类的 xml 响应

在 Kotlin 客户端应用程序中发送 FCM 推送通知 - Firebase 云消息传递

在 Room 中创建一对多关系时,@Relation 类是什么意思?

Kotlin Compose 全局页脚视图

如何使在库范围之外无法访问的接口的具体实现.?

如何在android studio 2021.1中使用谷歌库以外的库

Android:如何获取具有纬度和经度的位置的图像

如何使 BasicTextField 上的光标以 jetpack compose 为中心?