如何在MvvmCross中绑定View的layout_weight?

2023-11-30

绑定到 View(或任何其他 Android 控件)权重的最简单方法是什么?因为这个属性没有setter,所以我尝试了自定义绑定,但id似乎不起作用:

public class ViewWeightCustomBinding : MvxAndroidTargetBinding
{
    public ViewWeightCustomBinding(object target) : base(target)
    {
    }

    public override Type TargetType
    {
        get { return typeof (int); }
    }

    protected override void SetValueImpl(object target, object value)
    {
        var realTarget = target as View;
        if(target == null)
            return;

        ViewGroup.LayoutParams layoutParameters = realTarget.LayoutParameters;
        realTarget.LayoutParameters = new LinearLayout.LayoutParams(layoutParameters.Width, layoutParameters.Height,
                                                                  (int) value);
    }
}

在设置中注册:

protected override void FillTargetFactories(IMvxTargetBindingFactoryRegistry registry)
{
    registry.RegisterFactory(new MvxSimplePropertyInfoTargetBindingFactory(typeof(ViewWeightCustomBinding), typeof(View), "ViewWeight"));
    base.FillTargetFactories(registry);
}

和.axml

 <View
        android:layout_width="0dp"
        android:layout_height="3dp"
        android:background="@color/green_holo"
        local:MvxBind="ViewWeight Id" />

我可以在调试窗口中看到 Waring:

[0:] MvxBind:警告:5.20 无法为 Id 绑定 ViewWeight 创建目标绑定 [0:] MvxBind:警告:5.20 无法为 Id 绑定 ViewWeight 创建目标绑定 01-31 10:54:57.247 I/mono-stdout(3795):MvxBind:警告:5.20 无法为 Id 绑定 ViewWeight 创建目标绑定


MvxSimplePropertyInfoTargetBindingFactory只能用于真正的 C# 属性。

对于发明的“伪”属性,您需要使用自定义绑定注册,如 n=28 教程中所示 -

    protected override void FillTargetFactories(Cirrious.MvvmCross.Binding.Bindings.Target.Construction.IMvxTargetBindingFactoryRegistry registry)
    {
        registry.RegisterCustomBindingFactory<BinaryEdit>(
                        "N28", 
                        binary => new BinaryEditFooTargetBinding(binary) );
        base.FillTargetFactories(registry);
    }

https://github.com/MvvmCross/NPlus1DaysOfMvvmCross/blob/master/N-28-CustomBinding/CustomBinding.Droid/Setup.cs

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在MvvmCross中绑定View的layout_weight? 的相关文章

  • 构建成功时,Intellisense 不断显示错误 Visual Studio 2015

    因此 我正在开发一个 Xamarin 项目 突然 Visual studio 2015 开始崩溃 它几乎在所有内容下都显示错误红线 例如 InitializeComponent 在每个页面中都有红线 项目构建和运行没有错误 错误仅来自 In
  • 当输入字段不可见时,如何隐藏 Xamarin 表单中的错误标签?

    我正在尝试创建一个存在验证错误的登录页面 现在 如果输入字段不可见 也会出现验证错误 当输入字段不可见时 如何隐藏错误标签 如下图 PIN输入字段在登录页面上不可见 但出现错误消息 需要 PIN 码 强调 请问有人可以建议一个解决方法吗 同
  • NSTable行点击事件

    我正在开发 Xamarin Mac 应用程序 目前正在创建新闻源列表 我想要的是 当用户单击其中一行时 我会执行一些操作 打开浏览器并显示完整的故事 这是我的自定义单元格 行 的样子 public class CustomLatestNew
  • Xamarin Forms WebView 打开外部链接

    我的应用程序中有一个网络视图 当单击外部链接 在普通浏览器中在新选项卡中打开 时 我无法返回我的网站 当打开一个新标签时 有可能像 Gmail 一样关闭该标签的菜单吗 目的是 每当单击链接时 用户都可以选择使用哪个选项来查看内容 例如单击链
  • 如何在Xamarin Forms中实现Google Auth登录?

    我是 Xamarin 新手 我希望使用 Xamarin Forms 在我的新应用程序中进行 Google 登录 正确的方法是什么 有更新的教程或视频来指导吗 从哪儿开始 thanks 除了link https developer xamar
  • xaml UI 未以 xamarin 形式更新

    我将我的模型与我的 UI 绑定 在我的模型中 我做了一些计算 但其他属性与 UI 绑定 但我完成计算的某些属性不与我的 UI 绑定 而是在我的 OnPropertyChange 事件中显示计算 帮助我解决我的代码问题在哪里 提前致谢 我的模
  • 使用 MonoDroid 试用版调试应用程序

    我已经安装了 MonoDroid 试用版 我创建了一个 Hello World 应用程序并在模拟器中对其进行调试 但任何应用程序都会出现在 Android 设备模拟器上的应用程序列表中 问题是试用版还是我的应用程序中出现了一些错误 你能帮我
  • 如何从代码隐藏中设置 CarouselView 的项目?

    我有一个 CarouselView 它绑定到图像的 ItemsSource 但我想通过更改 CarouselView 的索引来更改当前显示的图像 我尝试使用 CarouselView Position 作为必须选择的元素的索引 但不幸的是这
  • 使用 Xamarin Forms 显示图像

    Solved 答案是更新所有 nuget 软件包并针对较新版本的 Android 现在图像按预期加载 我对此并不满意 因为我完全使用了 Xamarin 提供的代码 并且针对较新的版本已弃用了代码所依赖的一些项目 初始版本是 Xamarin
  • iOS App Store ExecutionEngineException 尝试 JIT 编译

    我有一个非常尴尬的问题 我已经为 iOS 构建了我的应用程序 并在所有模拟器上对其进行了测试 并且运行良好 我已将其安装在设备 iPhone 6 plus 上 效果也很好 然而 当我将其提交到应用商店时 反馈是它在所有设备上启动时都会崩溃
  • Draggable Boxview 不更新 Xamarin

    我的第一个问题是框视图生成在左上角 而不是我指定的设计网格第 10 行和网格第 3 列 第二个问题在于可拖动视图 在代码本地可拖动视图的第一部分中 它正确地调用了触摸事件 但也许它没有在GUI中更新
  • 设置UITextField的光标位置

    我查看了单点触控示例并尝试过 var range new NSRange selectionStart 1 NumberTextField SelectedTextRange IndexedRange GetRange range 但这会在
  • 如何在 Xamarin Forms 中做出长按手势?

    您能否告诉我如何识别 Xamarin Forms 应用程序中的长按手势 前几天我用过TapGestureRecognizer TapGestureRecognizer imageTap new TapGestureRecognizer im
  • 使用数据绑定,如何将包含表情符号的文本绑定到标签并使其正确显示?

    我正在编写一个应用程序来连接 WordPress BuddyPress API 该应用程序将允许用户通过 API 相互发送消息 当这些消息包含表情符号时 我很难正确显示它们 以下是 API 返回的消息文本的简短示例 Hi x1f642 ho
  • Android应用程序是否动态更改其目标API级别

    我有一个针对 Android API 级别 30 Android 11 的 Xamarin Forms 应用程序 其中安装了 Xamarin Twilio AudioSwitch v1 1 3 该应用程序可在 Play 商店中使用 并且在
  • 设备的临时协同设计在 Studio 中成功,但在 Jenkins 中失败

    我有一个支持 Android 和 iOS 的 Xamarin Forms 应用程序 我已经生成了 Jenkins 版本来编译它们 所有 Android 构建都可以工作 iOS 调试版本编译良好 然而 Ad Hoc 构建无法完全针对 iPho
  • 如何更改 Xamarin.Forms 中标签的字体系列?

    我尝试使用 CSS 和 XAML 更改标签的字体系列 但字体没有反映 我正在尝试在我的应用程序中使用 Montserrat 字体 我怎样才能解决这个问题 XAML 代码
  • Xamarin MasterDetailPage 看起来很难看

    I m trying to create a MasterDetailPage and I am not quite sure if I am doing that right but the drawer master just look
  • 打开位置设置页面或提示用户启用位置

    我一直在绞尽脑汁 徒劳地谷歌搜索 我正在尝试找到一种方法来提示用户通过直接进入设置页面或仅点击屏幕上的 是 来切换位置 我见过的所有代码似乎都不起作用 有人有有效的方法吗 一个详细的例子将不胜感激 谢谢 我对 Xamarin 开发非常陌生
  • 如何在 C# 中从这个分层父子结构中查找任何项目

    如何从列表中查找任何项目 因为它是动态的 它可能位于列表的任何位置的父项或子项中 并且当子项计数为0时需要停止查找 下面是列表的模型和分层父子结构示例 例子 父级 gt 子级 gt 子级 gt 子级或父级 gt 子级 gt 子级 gt 子级

随机推荐

  • 浮动元素超出其父元素?

    我在另一个 div 中有一个左浮动 div 并且浮动 div 内容正在从父级中移出 观看直播 http jsfiddle net eWkUg margin 0 padding 0 list style none ul width 600px
  • 在 AWS Lambda 中获取“内部流位置已意外更改”

    我正在 ASP Net core 中实现文件上传 在 Windows 上本地测试时一切正常 但是当我在 AWS Lambda 上部署代码时 我得到了 System InvalidOperationException 内部流位置已意外更改 在
  • opencsv写入文件,其中一些引用的元素和其他未引用的元素

    有谁有在Java中使用opencsv编写csv文件的经验 其中只有一些元素需要双引号 我想要测试的所需输出是创建一个文件 该文件将读取 1 two three 但是当我尝试下面的代码时 writer new CSVWriter new Fi
  • C#中返回类型前的ref关键字是什么意思

    下面的代码中 什么意思ref in the GetAge 方法签名 public class Person private int age public ref int GetAge return ref this age The refr
  • 悬停时播放音频文件(鼠标移开时停止播放)

    通过 JavaScript 在鼠标悬停时播放音频文件的最佳解决方案是什么 当鼠标离开链接时停止它 jQuery 可用 a href test mp3 class play play a
  • 在新终端中运行辅助脚本

    运行辅助 python 脚本时 是否可以运行subprocess Popen or subprocess call甚至execfile在新航站楼 就像在与运行脚本的当前终端不同的终端中 或者 如果在运行我的程序 主程序 之前 我首先打开两个
  • 在 Java 中使用 JSch 列出 SFTP 服务器上目录的完整层次结构

    我想使用 JSch 在远程位置显示目录的完整层次结构 该位置有多个文件夹 一个文件夹可能有也可能没有文件 我写的代码 参考SFTP 读取目录中的所有文件 sftpChannel cd remotePath Vector
  • 在二叉树中将 AND 分配给 OR(合取范式)

    我正在尝试转换二叉树 例如 OR Implementation of Operator a specialisation of TreeNode see below A Implementation of TreeNode see belo
  • MYSQL:如何将字符串转换为月份(数字)[重复]

    这个问题在这里已经有答案了 我有几个月的简短版本 JAN FEB MAR etc 并希望将它们转换为各自的数值 1 2 3 etc 另外 我希望能够在数字月份值之间来回更改为 短 月份名称 JAN FEB MAR 和它的长版本 Januar
  • 如何在 iOS 中以编程方式更新 UILabel

    我在更新标签时遇到问题 它不会删除旧值 因此新值位于旧值之上 对此的任何帮助将不胜感激 timer NSTimer scheduledTimerWithTimeInterval 1 target self selector selector
  • Android:CountDownTimer 跳过最后一个 onTick()!

    Code public class SMH extends Activity public void onCreate Bundle b super onCreate b setContentView R layout main TextV
  • 哪个 DLL 有 PathCchAppend?

    我正在尝试有条件地使用 if可用 功能PathCchAppend 我已经从标题中获取了函数签名pathcch h 但是 当我尝试从中获取函数的地址时SHLWAPI DLL 它失败 auto pca GetProcAddress GetMod
  • 使用 jsp 从 POST 表单中提取 100 多个输入数据:还有更好的方法吗?

    我正在编写的 servlet 需要访问所有 100 多个 POST 参数 由表单填写 参数因类型而异 文本 选项 选择等 通过按正确顺序获取参数 servlet 构造了一些实例 Entity稍后将使用以下方法将对象保留在数据库中JPA 有没
  • 使用 LINQ 的情况

    好的 另一个 LINQ 问题 如何使用 LINQ 执行 IN 条件 我有一个 myObject 的 IEnumerable 列表 并且想要执行类似 myObject Description in Help Admin Docs 的操作 我怎
  • 客户端套接字上的 setSoTimeout 不会影响套接字

    我有一个包含三个线程的 Java 应用程序 每个线程打开一个套接字并连接到不同端口上的服务器 建立与服务器的连接后 我在每个套接字上设置了 so timeout 之后线程会阻塞等待 read 只有一个线程在 20 秒后超时 这是我设置的超时
  • 更好地理解查找字符串排列的解决方案 - javascript

    我试图更好地理解递归和函数式编程 我认为一个很好的实践示例是使用递归和现代方法 如简化 过滤和映射 创建字符串的排列 我发现了这段漂亮的代码 const flatten xs gt xs reduce cum next gt cum nex
  • 位字段结构赋值意外行为

    我不知道为什么 但位字段分配没有按预期工作 可能只是一件愚蠢的事情 但我一直无法找到问题所在 非常欢迎任何帮助 typedef struct a unsigned char a1 1 unsigned char a2 3 unsigned
  • Jssor - 如何动态添加幻灯片?

    我必须将图像加载放在客户端 这基本上是在浏览器完成页面请求后 触发 ajax 调用来加载图像列表 然后将幻灯片添加到 sider 容器中 在该 ajax 调用之后 照片数量未知 我尝试构建幻灯片的 html 文本 并将其分配到滑块容器中 然
  • 无法连接到数据库服务器 mysql workbench

    我正在尝试连接到 mysql 工作台 但出现以下错误 错误信息 无法连接到数据库服务器 用户 root 从主机到服务器的连接尝试失败 127 0 0 1 3306 无法打开数据库 请 1 检查mysql是否在服务器127 0 0 1上运行
  • 如何在MvvmCross中绑定View的layout_weight?

    绑定到 View 或任何其他 Android 控件 权重的最简单方法是什么 因为这个属性没有setter 所以我尝试了自定义绑定 但id似乎不起作用 public class ViewWeightCustomBinding MvxAndro