Saat ini saya sedang membangun aplikasi di mana saya tidak menginginkan animasi saat Memunculkan dan Mendorong di Navigasi di Shell.

Saya mendapatkannya untuk Push Pages, karena itu hanyalah pernyataan "Salah" untuk fungsi tersebut, namun mengesampingkan fungsionalitas Tombol Kembali tampaknya tidak memengaruhi Popping Animation.

Berikut ini harus mengganti tombol kembali semua Halaman dalam aplikasi, untuk melakukan Pop tanpa animasi, namun masih ada animasi yang terjadi.

Apakah saya melakukan sesuatu yang salah?

public partial class AppShell : Xamarin.Forms.Shell
{
    public AppShell()
    {
        InitializeComponent();
    }

    protected override bool OnBackButtonPressed()
    {
        Current.Navigation.PopAsync(false);
        return true;
    }
}
0
Kevin Jensen Petersen 11 Maret 2020, 12:10

1 menjawab

Jawaban Terbaik

Ini adalah bug terbuka dengan Xamarin yang dapat ditemukan di masalah Github ini.

Dari apa yang saya pahami, tim xamarin menganggap ini adalah perubahan yang melanggar dan mungkin perlu waktu untuk memperbaikinya.

Saran

Ada komentar di sana yang menggunakan Renderer Kustom untuk memperbaikinya dengan cara berikut:

[assembly: ExportRenderer(typeof(NavigationPage), typeof(CNavigationPageRenderer))]
namespace TestApp.Droid
{
public class CNavigationPageRenderer : NavigationPageRenderer
{
    public CNavigationPageRenderer(Context context) : base(context)
    {

    }

    protected override Task<bool> OnPushAsync(Page view, bool animated)
    {
        return base.OnPushAsync(view, false);
    }

    protected override Task<bool> OnPopViewAsync(Page page, bool animated)
    {
        return base.OnPopViewAsync(page, false);
    }

    protected override Task<bool> OnPopToRootAsync(Page page, bool animated)
    {
        return base.OnPopToRootAsync(page, false);
    }
}
}

Lakukan hal yang sama untuk platform lain. Seperti yang saya katakan, ini membuat flag animasi di Core tidak berguna, tetapi setidaknya menonaktifkan semua animasi halaman bahkan ketika Anda menggunakan tombol Kembali karena seharusnya memanggil OnPopViewAsync.

Anda berpotensi menambahkan logika khusus di sini untuk memindai jenis halaman atau serangkaian kriteria tertentu (seperti logika khusus Anda [yaitu Push non-animasi harus digabungkan dengan pop non-animasi untuk halaman tertentu]).

Goodluck jangan ragu untuk kembali jika Anda memiliki pertanyaan

0
FreakyAli 11 Maret 2020, 09:34