Saya mencoba menerapkan aliran kata sandi yang lupa. Yang ingin saya lakukan adalah menangani email yang diterima, yang berisi tautan ke halaman web yang lupa kata sandi, di dalam aplikasi.

Menggunakan komponen Navigasi, saya membuat tautan dalam, yang membuka fragmen kanan (yang memiliki bidang kata sandi). Jadi saya bisa mengubah kata sandi. Mengklik kembali, saya kembali ke layar login, yang merupakan titik awal grafik navigasi saya.

Semuanya bekerja seperti yang diharapkan, kecuali untuk animasi. Ketika saya membuat tindakan di antara tujuan, saya dapat menetapkan animasi enter/exit/popenter/popexit, tetapi dengan tautan dalam saya tidak membuat tindakan apa pun, jadi ketika saya mendorong kembali, saya mencapai fragmen yang diharapkan tetapi tidak ada animasi dimainkan.

Saya mencoba bermain sedikit dengan kode, tetapi tidak ada hasil, dan saya tidak dapat menemukan solusi yang memungkinkan di dokumen.

Saya mencoba membuat beberapa tindakan di grafik navigasi saya (ada 4 opsi berbeda mengklik kanan pada tujuan:

  • ke tujuan (paling umum dan yang biasa saya gunakan)
  • untuk diri sendiri (saya tidak mengerti tujuan dari ini)
  • kembali ke sumber (saya tidak mengerti tujuan dari ini)
  • global

Tak satu pun dari mereka tampaknya memecahkan masalah saya. Ide ide? Terima kasih sebelumnya.

3
Simone Cascino 2 Maret 2020, 20:14

1 menjawab

Jawaban Terbaik

Anda dapat menemukan di NavController

public void navigate(@NonNull Uri deepLink, @Nullable NavOptions navOptions) {
    navigate(deepLink, navOptions, null);
}

Di NavOptions, atur animasi Anda dengan cara yang sama seperti dalam aksi:

val navOptions =
    NavOptions.Builder()
        .setPopUpTo(
            R.id.nav_graph_main,
            false
        )
        .setEnterAnim(R.anim.slide_in_right)
        .setExitAnim(R.anim.slide_out_left)
        .setPopEnterAnim(R.anim.slide_in_left)
        .setPopExitAnim(R.anim.slide_out_right)
        .build()
4
NataTse 16 April 2020, 20:23