gpt4 book ai didi

android - 如何绑定(bind) TextView 的 TextColor?

转载 作者:太空宇宙 更新时间:2023-11-03 11:42:38 27 4
gpt4 key购买 nike

我正在尝试在 Android 中绑定(bind) TextView 的文本颜色。这是我的(截断的)xaml:

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:MvxBind=" TextColor CategoryTextColor(Category)"/>

其中CategoryTextColorValueConverter如下:

public class CategoryTextColorConverter : MvxValueConverter<ShowCategory, Color>
{
protected override Color Convert (ShowCategory value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == ShowCategory.AllShows)
{
return Color.Blue;
}
return Color.Red;
}
}

转换器被调用并按预期返回颜色,但 TextView 上的文本颜色永远不会改变。我对背景颜色有类似的绑定(bind),效果很好。我在这里看到过In MvvmCross how do I do custom bind properties也许我需要创建一个自定义绑定(bind),但我找不到 MvxBaseAndroidTargetBinding。也许我需要从 nuget 安装一个单独的包?

最佳答案

您唯一需要做的就是安装 MvvMCross Color 插件,因为 TextColor随之而来。它不包含在核心中。您发布的解决方案有效。

参见:https://github.com/MvvmCross/MvvmCross/wiki/MvvmCross-plugins#color

提示:如果您使用 MvxColorValueConverter<ShowCategory>,则不必编写特定于平台的 ValueConvertes ,您可以跨不同平台共享它。

public class CategoryTextColorConverter : MvxColorValueConverter<ShowCategory>
{
protected override MvxColor Convert(ShowCategory value, object parameter, CultureInfo culture)
{
if (value == ShowCategory.AllShows)
{
return MvxColors.Blue;
}
return MvxColors.Red;
}
}

关于android - 如何绑定(bind) TextView 的 TextColor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36134107/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com