首页 文章

Xamarin Forms打开一个没有导航的视图

提问于
浏览
0

Xamarin表单导航示例我看到利用NavigationPage ...

public App()
{
    InitializeComponent();

    MainPage = new NavigationPage(new HyperTrack2.Login());
}

然后当事件发生时移动到下一页......

async void OnLogin(object sender, EventArgs e)
{
    await Navigation.PushAsync(new MapPage());
}

如何在不使用NavigationPage的情况下显示视图?

1 回答

  • 1

    取决于您认为的观点 .

    您在问题中概述的过程是使用Xamarin页面进行导航的首选方法 . Xamarin页面包含一个或多个控件或视图 . 通常在根处有一些布局视图,然后根据需要分支出来 .

    内置的导航机制实际上利用最佳的本机技术在应用程序内部导航,并允许您使用标准手势和按钮进行导航,显示标准工具栏和 Headers 视图等 .

    我完全建议除非你有非常具体的需求,否则你继续使用内置的导航机制 .

    否则,您通过xamarin.forms页面移动的另一个选项是仅设置Application类的MainPage属性(默认情况下称为App)您可以通过Application.Current.MainPage = new MyPage();或者如果在app类中编写代码,直接通过调用MainPage = new MyPage();

    最后,你特别提到显示 view 而不是 page . 如果你在讨论页面中的单个控件,你可以将它的IsVisible属性绑定到ViewModel中的某个值,或者你可以给它一个x:Name = "myControl"(如果使用XAML)或存储对它的引用(如果在后面的代码中创建UI,然后在代码后面的某个地方执行myControl.IsVisible = true / false . 这会切换单个控件的可见性,然后该控件将成为页面层次结构的一部分 .

    如果您希望将视图显示为现有页面上的“弹出窗口”,而不实际成为页面的一部分,则可以使用一些内置的简单UI元素,例如操作表和显示警报 . 这些提供简单的弹出窗口,提供一些操作或显示消息 . 对于更复杂的UI,请查看Nuget插件包,或者如果您愿意,可以通过在所需的所有目标平台上实现功能来编写自己的UI .

    我建议查看Acr User对话框,因为它是一个非常好用的插件 . 它有一组你可以使用的更广泛的UI元素,但它仍然不允许你定义你想要的任何元素并在弹出窗口中显示它,为此,搜索Xamarin.Forms的弹出插件 . 有很多,但没有一个完美地工作 .

相关问题