【发布时间】:2019-09-05 10:09:46
【问题描述】:
我正在使用 App Shell 开发 Xamarin Forms 应用。
我发现我必须在 AppShell.xaml.cs 中为 ShellContent Page 处理 android 硬件后退按钮,而不是 ShellContent Page。
protected override bool OnBackButtonPressed()
{
//Get currernt shell content and call its method
//like (Shell.Current.Content as MyContentPage).MyMethod();
}
1) 如何在 AppShell.xaml.cs 中获取当前的 Shell 内容页面引用?
2) 如何在没有路由的情况下以编程方式更改当前的 Shell 内容页面?
最好的问候。
【问题讨论】:
-
可以使用 MessaginCenter 调用 MyMethod() docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/…
-
为什么您需要确切知道正在显示哪个 ContentPage?
-
我还看到你想调用 MyMethod,如果我知道它的作用会有所帮助!
-
我添加了一个包含 WebView 控件的内容页面。当我按下 android 硬件按钮时,在 AppShell.xaml.cs 中调用 OnBackButtonPressed,而不是在内容页面中调用。我想在按下 android 后退按钮时调用 WebViewControl.GoBack 方法,而不是关闭我的应用程序。因为在 AppShell.xaml.cs 中调用了 OnBackButtonPressed,所以我必须获取当前的 ShellContent 实例并获取 WebViewControl 并调用其 GoBack 方法。
-
这个问题你解决了吗?
标签: xamarin xamarin.forms