MvvmCross Android对话框-嵌套根元素的行为

MvvmCross Android对话框-嵌套根元素的行为,android,xamarin.android,mvvmcross,Android,Xamarin.android,Mvvmcross,我对MvvmCross对话框生成器代码的功能感到困惑 我有一个从BaseSettingsView继承的SettingsView 下面的代码在iOS上显示了一个带有单个部分的对话框。单击该节时,将生成另一个面板,该面板的根元素中包含该节: Root = new RootElement("Settings") { new Section() { (Element) new RootElement("Location Settings")

我对MvvmCross对话框生成器代码的功能感到困惑

我有一个从BaseSettingsView继承的SettingsView

下面的代码在iOS上显示了一个带有单个部分的对话框。单击该节时,将生成另一个面板,该面板的根元素中包含该节:

Root = new RootElement("Settings")
{
    new Section()
    {
        (Element) new RootElement("Location Settings")
                                  {
                                      new Section("Details")
                                          {
                                              new EntryElement("Name", "Location Name"),
                                          },
                                  },
                           }
                   };
然而,在Android上,当点击该部分时,设置视图的代码完全相同,不会出现其他面板或视图。我想知道是否有可能在Android上有这种“嵌套视图”,或者我是否应该为这个条目创建一个点击处理程序,它将通过导航到另一个ViewModel显示一个全新的对话框

有趣的是,下面的代码将生成一个元素,单击该元素将创建一个全新的对话框,其中嵌套的RootElement中包含该条目。然而,据我所知,这似乎只适用于放射组

Root = new RootElement("Settings")
        {
            new Section()
                {
            (Element) new RootElement("Status", new RadioGroup(0))
                            {
                                new Section("Status")
                                    {
                                        new RadioElement("On"),
                                        new RadioElement("Off"),
                                    },
                            },
                },
我已经查看了Mvx对话框示例并查看了N+1,但对于Android上的MvvmCross是否可能或需要这种自动导航到嵌套根元素,我找不到任何指导

谢谢


马修

我相信这是遗传自单机器人的

有趣的是,下面的代码将生成一个元素,单击该元素将创建一个全新的对话框,其中嵌套的RootElement中包含该条目。然而,据我所知,这似乎只适用于放射组

Root = new RootElement("Settings")
        {
            new Section()
                {
            (Element) new RootElement("Status", new RadioGroup(0))
                            {
                                new Section("Status")
                                    {
                                        new RadioElement("On"),
                                        new RadioElement("Off"),
                                    },
                            },
                },
我不认为这是正确的-我认为RadioGroup显示Android弹出窗口
对话框
s以启用选择-参见


最近在这方面也有一个代码贡献,但我个人还没有看到。

谢谢Stuart。总结一下,据我所知:该弹出窗口仅为Droid上的RadioGroup内置。iOS上嵌套的RootElements提供了到另一个屏幕的自动导航,其中包含该RootElement下的元素。因此,为了在您单击某个元素时支持设置子屏幕,我最好启动ShowViewModel调用,或者为所需的子菜单创建一个新对话框。没有内置内容-这可能是因为该对话框构建在与UIViewController不同的内存/生命周期模型中操作的活动之上。但我怀疑,如果你愿意,你可以相当快地(一天?)构建一些东西——特别是如果你查看片段或其他人最近完成的一些线性布局工作。不要试图回避这个问题-你“最好”做什么实际上取决于应用程序需要什么以及你有多少时间。是否可以将元素生成器代码托管在片段中而不是dialogactivity中?理想情况下(这有助于促进动画制作),我希望将不同的设置页面作为对话框或活动中的片段。否则,当我打开设置子页面时,我想我需要为每个页面加载一个新的对话框——这是可行的,但不像neatA警察曾经告诉我的“自行车可以去任何地方”。我相信代码也是如此。“尤其是当你看到一些片段或其他人最近所做的一些线性布局工作时。”-这可能会对你有所帮助,所以这是可能的,但不是现成的。我会考虑是否有时间在我的公路自行车上安装山地自行车轮胎;-)为你的帮助干杯。