禁用特定页面上的手势Xamarin

ix0qys7i  于 7个月前  发布在  其他
关注(0)|答案(1)|浏览(74)

我希望禁用手势为特定的页面。我遇到了许多职位建议设置MasterDetailPage的IsGestureEnabled为假禁用它。这工作,但由于某种原因,不是所有的时间。
目前我只想在登录页面禁用手势,所以在身份验证时我启用手势,在出现时我禁用。
我遇到的问题是,如果用户切换应用程序并返回并注销,手势仍然启用。这让我认为一个不同的MasterDetailPage上下文被触发。
有没有人遇到过这个问题或有任何指导我。我可能认为我不理解MasterDetailPage的生命周期

qybjjes1

qybjjes11#

如果你想在MasterDetailed页面的特定页面上禁用手势,我建议你尝试使用MassagingCenter来做到这一点。
1.从主详细页面构造器使用MassagingCenter:

MessagingCenter.Subscribe<string>(this, "DisableGesture", (sender) =>
        {
            if (sender == "0")
            {
                IsGestureEnabled = false;
            }
            else
            {
                IsGestureEnabled = true;
            }
        });

字符串
2.当您导航到特定页面,并希望禁用手势时,您可以在内容页面OnAppearing方法中执行此操作。

protected override void OnAppearing()
    {
        base.OnAppearing();
        MessagingCenter.Send<string>("0", "DisableGesture");

    }

相关问题