如何在Xamarin跨平台应用程序中自动从一个屏幕导航到另一个屏幕?
我无法找出如何自动从一个屏幕导航到另一个屏幕,而无需点击任何按钮或执行任何操作。我想在启动屏幕出现后立即启动另一个屏幕。因为我是这个工具或技术的新手。请帮忙。先谢谢你。如何在Xamarin跨平台应用程序中自动从一个屏幕导航到另一个屏幕?
My code is:
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
protected async override void OnAppearing()
{
base.OnAppearing();
await Task.Delay(5000); // Simulate a bit of startup work.
await this.Navigation.PushAsync(new HomePage());
}
}
工作和测试代码:
protected override void OnAppearing()
{
base.OnAppearing();
GoToMaster();
}
private async void GoToMaster()
{
await Task.Delay(5000);
await this.Navigation.PushAsync(new SignUpPage());
}
我做下xamarin.droid文件我泼活动,我希望它显示我在便携式作出的XAML文件部分在启动主页活动之前。
您不能跳过在MainActivity因为它是在便携式LIB页面的容器,所以,如果你想在启动画面后重定向到您的XAML页面,你可以SplashScreenActivity浏览到您的MainActivity并你的XAML文件中的MainPage
App.cs
的:
public partial class App : Application
{
public App()
{
InitializeComponent();
MainPage = new YourPage();
}
....
}
而在你SplashScreenActivity
你需要导航到MainActivity
:
[Activity(Theme = "@style/MyTheme.Splash", MainLauncher = true, NoHistory = true)]
public class SplashActivity : AppCompatActivity
{
static readonly string TAG = "X:" + typeof(SplashActivity).Name;
public override void OnCreate(Bundle savedInstanceState, PersistableBundle persistentState)
{
base.OnCreate(savedInstanceState, persistentState);
}
protected override void OnResume()
{
base.OnResume();
Task startupWork = new Task(() => { SimulateStartup(); });
startupWork.Start();
}
async void SimulateStartup()
{
await Task.Delay(8000);
StartActivity(new Intent(Application.Context, typeof(MainActivity)));
}
}
这里是完整的演示:SplashScreenDemo。
谢谢。如果我想要显示任何图像作为我的启动画面,那么我需要在Xamarin.android的布局部分下制作它的axml页面吗?此外导航现在成功,但我无法看到我在屏幕上设计的用户界面。它显示一个空白屏幕。 –
对于初始屏幕,您可以按照[官方文档](https://developer.xamarin.com/guides/android/user_interface/splash-screen/#drawable)进行操作。对于空白屏幕问题,请创建一个新的线程与细节。 –
这不起作用。我在xamarin.droid文件下做了我的splash活动,并且希望它在启动主页活动之前显示我在便携部分中制作的xaml文件。 –
添加像App.xaml和其他相关的代码的细节。这对我来说工作得很好。 – Sandy