Il menu Xamarin Forms Shell Hamburger non viene visualizzato in iOS durante la prima navigazione

Aug 20 2020

Ho un'applicazione shell Xamarin Forms con un menu hamburger. Quando apro l'app non riesco a vedere il menu dell'hamburger sul mio iPhone (ma sul mio Android). Quando navigo da qualche parte e torno indietro, l'icona dell'hamburger appare come previsto. Per la gestione del menu dell'hamburger mi affido al codice generato di default del modello di shell dell'app e ho appena aggiunto alcuni ulteriori elementi al menu.

Come posso dire alla shell di mostrare sempre le icone del mio menu?

Github Link al progetto:https://github.com/NPadrutt/MoneyFox.Windows/tree/mobile-redesign

Risposte

1 LucasZhang-MSFT Aug 20 2020 at 18:04

È causato dal renderer personalizzato.

in MoneyFox.iOS ->Renderer->CustomContentPageRenderer .

        ToolbarList.Sort((i1, i2) =>
                         {
                             return i1.Priority > i2.Priority
                                    ? -1 : 1;
                         });

        foreach(ToolbarItem itm in ToolbarList)
        {
            if(itm.Priority < 0)
                LeftNavList.Add(itm.ToUIBarButtonItem());
            else
                RightNavList.Add(itm.ToUIBarButtonItem());
        }

        navigationItem.SetLeftBarButtonItems(LeftNavList.ToArray(), false);
        navigationItem.SetRightBarButtonItems(RightNavList.ToArray(), false);

Il codice precedente riordinerà l'elemento su NavigationBar . Che causerà il problema. La soluzione più semplice è non utilizzare il renderer . Nel caso sembra non abbia alcun effetto evidente.

//[assembly: ExportRenderer(typeof(ContentPage), typeof(CustomContentPageRenderer))]