Menu Xamarin Forms Shell Hamburger tidak muncul di iOS pada navigasi pertama

Aug 20 2020

Saya memiliki Aplikasi Shell Formulir Xamarin dengan menu hamburger. Ketika saya membuka aplikasi, saya tidak dapat melihat menu hamburger di iPhone saya (tetapi di Android saya). Ketika saya menavigasi ke suatu tempat dan kembali, ikon hamburger muncul seperti yang diharapkan. Untuk menangani menu hamburger, saya mengandalkan kode default yang dihasilkan dari template shell aplikasi dan hanya menambahkan beberapa item lagi ke menu.

Bagaimana saya bisa memberi tahu shell untuk selalu menampilkan ikon menu saya?

Tautan Github ke proyek: https://github.com/NPadrutt/MoneyFox.Windows/tree/mobile-redesign

Jawaban

1 LucasZhang-MSFT Aug 20 2020 at 18:04

Ini disebabkan oleh Custom Renderer.

di 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);

Kode di atas akan mengurutkan ulang item di NavigationBar. Yang akan menyebabkan masalah. Solusi termudah adalah jangan gunakan perender. Dalam kasus ini tampaknya tidak memiliki efek yang jelas.

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