【问题标题】:Xamarin Forms: How to show a full screen page when selecting a specific tabXamarin Forms:选择特定选项卡时如何显示全屏页面
【发布时间】:2018-01-28 12:07:04
【问题描述】:

我有一个带有 Xamarin Forms 的选项卡式主应用程序。

我希望在切换到特定选项卡时全屏打开内容页面(没有选项卡和标题)。 当我按下这样的按钮时,我可以获得所需的行为:

await Navigation.PushModalAsync(new DashboardPage());

虽然我不确定如何让它在切换到特定标签时自动打开。

任何帮助将不胜感激,

谢谢!

【问题讨论】:

  • 这确实违反了标签页的常见 UI 标准
  • 这似乎是一个糟糕的设计。例如,一个选项卡就是一个选项卡,您似乎在混合和匹配设计概念。但是,选项卡式页面类中似乎没有任何内容可以轻松覆盖。所以如果可能的话你可能需要实现一个渲染器,我的投票是重新考虑你的设计
  • 我对此很陌生,我基本上需要一个页面是全屏的,同时有其他标签页(如各种设置、统计信息等)。关于什么是更好的方法的任何建议?基本上,我试图在 Android 上模仿 WhatsApp 中的行为:当您转到相机选项卡时,它会全屏打开,对吗?他们是否允许违反规则?

标签: c# android xamarin.forms


【解决方案1】:

我设法通过在标签页类中添加以下内容来获得它:

    protected override void OnAppearing()
    {
        base.OnAppearing();
        Navigation.PushModalAsync(new DashboardPage());
    }

    protected override void OnDisappearing()
    {
        base.OnDisappearing();
        // move on a different tab to avoid infinite loop when back button is pressed
        var masterPage = this.Parent as TabbedPage;
        masterPage.CurrentPage = masterPage.Children[0];
    }

可能不是最优雅的方式,但它可以完成工作

【讨论】:

    猜你喜欢
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 2017-06-27
    相关资源
    最近更新 更多