【问题标题】:MvxListView in Android with MvvmCrossAndroid 中的 MvxListView 与 MvvmCross
【发布时间】:2013-06-11 17:49:49
【问题描述】:

我正在使用 MvvmCross v3,但我在 Android 中的列表有点问题。

我其实有一个 Mvx.MvxListView 效果很好,但我在平板电脑上工作,ListView 有点不合适。所以我想在 XAML 中有一个像 WrapPannel 这样的控件,以便连续拥有多个项目。

我怎样才能有这种控制?

谢谢

【问题讨论】:

    标签: android android-listview mvvmcross


    【解决方案1】:

    这里有两个挑战:

    1。查找或制作您想要的控件

    第一个确实取决于您和您的用户体验/设计团队 - 尽管人们可能会提出可能会有所帮助的应用和项目。选择控件时,请务必小心了解它的内存使用情况——尤其是:

    • 是否虚拟化 UI 重用单元格(就像列表一样)
    • 或者它是否为每个项目创建一个单元格,即使项目不可见(就像 SL WrapPanel 一样?)

    2。为其添加数据绑定

    这第二步通常很简单——看看其中一个 Mvx 布局控件,看看它是如何转换为数据绑定的——例如https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding.Droid/Views/MvxLinearLayout.cs

    您通常可以将此代码剪切并粘贴到您的新类型中。

    有关子类化现有类型的更多信息,另请参阅视频系列中的 N=18 - http://slodge.blogspot.co.uk/2013/05/n18-android-custom-controls-n1-days-of.html - 这显示了 TextView 的子类化


    对于 wrappanel,我之前确实调整并使用了 @CheeseBaron 的端口之一 - FlowLayout - 请参阅 http://slodge.blogspot.co.uk/2013/01/an-mono-for-android-wrappanelflowlayout.html。但是,这尚未针对 v3 进行更新 - 如果您确实更新了它,如果您将结果分享回来会很棒。

    【讨论】:

    • 非常感谢,我将@CheeseBaron 的端口与您的线性布局代码合并,它可以工作! (我只更改了几行)很抱歉,与您分享新版本的 BindingFlowLayout 的最佳方式是什么。我做了一个小项目来测试它,也许我可以把它上传到我的 GitHub 上?编辑:也许我说得太快了,我有一个问题,一旦我更新我的 ObservableCollection,我的项目就会显示两次。我会看到的,我会回来找你的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 2015-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-06
    • 1970-01-01
    相关资源
    最近更新 更多