Xamarin.Forms - 如何在TabbedPage上禁用Tab?

时间:2014-06-28 00:35:19

标签: xamarin

我正在寻找一种方法来禁用TabbedPage中的选项卡。该选项卡应该仍然显示在TabbedPage标题中,但只是被禁用。

我试图将Page设置为IsEnabled = false,但显然这不是你怎么做的,或者我做错了。 :)

2 个答案:

答案 0 :(得分:2)

您可以为选项卡式页面控件创建自定义渲染器,并在渲染器的特定于平台的实现中禁用用户交互。

例如,iOS的渲染器会使用UITabBarControllerDelegate Protocol覆盖

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController

并返回NO以查找不应选择的标签。 Android或Windows Phone的解决方案类似。

答案 1 :(得分:1)

这是我自带的@joeriks方法,这是一个很好的快速/简单的解决方案。令人烦恼的是事件args只是EventArgs。

只需将其添加到您的TabbedPage .cs文件中。

    Page _lastKnownPage;
    protected override void OnCurrentPageChanged()
    {
        base.OnCurrentPageChanged();
        if (CurrentPage.IsEnabled)
            _lastKnownPage = CurrentPage;
        else
            CurrentPage = _lastKnownPage;
    }