禁用特定页面上的手势Xamarin

ix0qys7i  于 2023-11-15  发布在  其他
关注(0)|答案(1)|浏览(165)

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

qybjjes1

qybjjes11#

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

  1. MessagingCenter.Subscribe<string>(this, "DisableGesture", (sender) =>
  2. {
  3. if (sender == "0")
  4. {
  5. IsGestureEnabled = false;
  6. }
  7. else
  8. {
  9. IsGestureEnabled = true;
  10. }
  11. });

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

  1. protected override void OnAppearing()
  2. {
  3. base.OnAppearing();
  4. MessagingCenter.Send<string>("0", "DisableGesture");
  5. }

展开查看全部

相关问题