我已经玩了一段时间了,我只是想知道添加应用程序范围的NavigationDrawer的最佳方法 .
-
从我可以收集到的,最好的方法是实现v4小部件系统并将每个视图作为片段放入'HomeView'(这只是包含NavigationDrawer的主视图和以编程方式覆盖的片段) . 这种方法似乎在理论上是最干净的,但后来我失去了使用MvvmCross所带来的所有细节,似乎使用它毫无意义 . 我的意思是我'll lose the use of the ICommand binding on the viewmodel to navigate from within a fragment to go to another child page/fragment. (unless I'错了吗?)
-
我想的另一个选择是有效地拥有一个'master'基本视图,我的所有视图都继承了一个自定义的NavigationDrawer,它对Xamarin / MvvmCross来说还不是很新的尝试这种类型的结构 .
有没有人对此最佳做法有任何建议或想法?理想情况下,我想要选项1,但我希望在ViewModel中保留和维护ICommand绑定,以实现跨平台兼容性 .
1 回答
我最终选择了选项1,使用http://motzcod.es/post/60427389481/effective-navigation-in-xamarin-android-part-1作为基准参考点 .
我现在有一个主视图(HomeView),而现在每个其他页面都是一个被放入content_frame片段的片段 .
我的所有页面都继承自具有GoToView方法的BaseFrag . 这确实意味着我在视图模型中丢失了跨平台ICommand绑定,这是一种耻辱 . 我将来可能会尝试重新审视这个问题 .
我还将尝试重新审视必须传递视图模型并查看MvvmCross所做的依赖注入,以使此过程不那么简单 . 在我的页面片段中,我只需要将click事件绑定到ListViewItem并调用GoToView方法
但是现在这样做会让我有所帮助,直到我有更多的时间来投资抽象它 .