5

我现在正在做一个项目,我们正在使用 MvvmCross 框架。该项目应在二月完成。我们想知道我们是否应该等待 AutoView 作为跨平台 UI 解决方案,还是 2 月即将到来?

我们现在遇到的问题是我们希望能够动态地构建一个 BindableListView。然后列表中的每个项目都可以有不同的布局及其视图集,例如,当我有一个按任何顺序排列的字符串和整数列表时,BindableListView 将为每个字符串显示一个 TextView,为每个 int 显示一个数字选择器。

像这样的东西:

public ElementDescription DefaultView()
{
    var auto = new RootAuto(caption: "TestRootElement")
    {
        new SectionAuto(header: "Test Info")
            {
                foreach(item s in list)
                {
                    if(s.GetType() == typeof(string) )
                        new StringAuto();
                    if(s.GetType() == typeof(int)
                        new IntAuto();
                }              
            };

        return auto.ToElementDescription();
    }
}

这甚至可以通过 AutoView 实现吗?还是我们应该寻找不同的解决方案?

4

1 回答 1

3

简单的答案 - 如果它是一个截止日期紧迫的真实项目......可能不会。


更长的答案...

什么时候可以使用自动查看?

AutoViews 将在“本周”仅适用于 Droid - 这包括对话框、菜单和列表屏幕的自动选项。

对于 Touch,我预计 AutoViews 将在 2-3 周内到达 - 但这项工作可能会在某些方面影响 Droid 工作 - 例如,某些类和方法可能需要调整。

对于 WP 和 WinRT,时间表目前不太清楚。有几个人在 WP.Dialog 端口上工作,这些端口的时间表尚不清楚......

整个 AutoView 包何时可用?API什么时候会稳定?会有多少样本?什么时候提供文件?我不知道。希望 12 月下旬,1 月初 - 但这里有一些外部因素需要考虑(包括当 MonoTouch/Droid 的 async/await 到达时将发生的一些 MvvmCross 添加)。


自动视图将用于什么?

我对 autoviews 的主要关注是允许快速的跨平台开发——因此它们将提供一种快速的方法来让 UI 启动并在 4 个平台上运行。

这些 UI 将是可换肤的 - 例如在 MonoTouch 上使用 UIAppearance 并在 MonoDroid 上使用自定义 axml。这些 UI 也将是可扩展的和可覆盖的 - 不会锁定 AutoView 方法。

很可能这些用户界面“足够好”,可以为许多客户提供——例如,像 TweetStation 这样的应用程序(以及更多其他应用程序)已经展示了 MonoTouch.Dialog 如何生成非常漂亮的成品应用程序,我希望 AutoViews 也能做到这一点.

但是,AutoView UI 永远不会像每个平台上的完全自定义 UI 那样强大或灵活——因此许多应用程序也不想使用 AutoViews——或者想要覆盖其中的重要部分。


我今天可以使用 AutoViews 吗?

是的。

但:

  • 仅在机器人上
  • 您需要乐于使用 PCL 进行开发(AutoViews 目前仅存在于 vNextDialog 分支中)
  • 你需要在接下来的几周内期待一些命名空间、类和方法的变化(例如,目前我们在 FooBar 命名空间中使用 MonoDroid.Dialog)
  • 您可能想要分叉存储库以将自己与这些更改隔离开来。
  • 使用 AutoViews 也有一些小的性能损失 - UI 是使用反射构建的,它总是比直接代码慢(这不是一个巨大的损失,但如果你是一个喜欢让你的代码真正飞起来的低级开发人员,那么你会更愿意避开反射)。
于 2012-11-14T09:16:22.263 回答