2017-09-27 2 views
0

Je ne suis pas capable de savoir comment naviguer automatiquement d'un écran à l'autre sans avoir à cliquer sur un bouton ou à effectuer une action. Je veux commencer un autre écran juste après que mon écran de démarrage apparaisse. Comme je suis nouveau sur cet outil ou cette technologie. S'il vous plaît aider. Merci d'avance.Comment naviguer d'un écran à l'autre automatiquement dans l'application Xamarin cross platform?

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()); 
    } 
} 

Répondre

0

travail et testé le code:

protected override void OnAppearing() 
{ 
    base.OnAppearing(); 
    GoToMaster();    
} 

private async void GoToMaster() 
{ 
    await Task.Delay(5000); 
    await this.Navigation.PushAsync(new SignUpPage()); 
} 
+0

Cela ne fonctionne pas. J'ai fait mon activité splash sous le fichier xamarin.droid et je veux qu'il affiche le fichier xaml que j'ai fait en partie portable avant de lancer l'activité de la page d'accueil. –

+0

Ajoutez des détails comme App.xaml et d'autres codes associés. Cela fonctionne bien pour moi. – Sandy

0

J'ai fait mon splash activité sous fichier xamarin.droid et je le veux pour afficher le fichier XAML que je l'ai fait en portable partie avant de lancer l'activité de la page d'accueil.

Vous ne pouvez pas sauter le MainActivity car il est le conteneur de vos pages dans lib Portable, donc si vous souhaitez rediriger vers votre page XAML après l'écran de démarrage, vous pouvez faire SplashScreenActivity naviguer à votre MainActivity et faire déposer votre XAML la MainPage de App.cs:

public partial class App : Application 
{ 
    public App() 
    { 
     InitializeComponent(); 

     MainPage = new YourPage(); 
    } 
    .... 
} 

Et dans votre SplashScreenActivity vous avez besoin pour accéder au 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))); 
    } 
} 

voici la démo complète: SplashScreenDemo.

+0

Merci. Si je veux afficher une image comme écran de démarrage, dois-je faire sa page axml sous la section Layouts de Xamarin.android? La navigation est également réussie, mais je ne suis pas en mesure de voir l'interface utilisateur que j'ai créée sur mon écran. Il montre un écran vide. –

+0

Pour Splash Screen, vous pouvez suivre le [document officiel] (https://developer.xamarin.com/guides/android/user_interface/splash-screen/#drawable). Pour le problème d'écran vide, veuillez créer un nouveau fil avec des détails pour cela. –