Clave de retorno de captura de fragmentos de Android

prefacio

Cuando estaba usando el componente BottomNavigationView, descubrí que cuando hacía clic en el botón de retorno en otra interfaz de fragmento para volver a la página de inicio, los datos de la página de inicio desaparecían. Pensé que era un problema que la página del fragmento no se recreara al regresar a la página de inicio, pero se verificó que efectivamente se llamó a onCreate(), pero no había datos. Así que pensé en otra forma de capturar la clave de retorno de otras páginas de fragmentos y volver a navegar a la página principal.

En la Actividad, podemos reescribir directamente el método onBackPressed() para capturar la clave de retorno, pero no existe tal método en el fragmento. Después de consultar la información relevante, descubrí que el método de devolución de llamada oficial se puede usar para monitorear la clave de retorno. .

API oficial: OnBackPressedDispatcher | Desarrolladores de Android

lograr

Anule el método onAttach() en su propio fragmento

public class FormEntryFragment extends Fragment {
    @Override
    public void onAttach(@NonNull Context context) {
        super.onAttach(context);
        OnBackPressedCallback callback = new OnBackPressedCallback(true) {
            @Override
            public void handleOnBackPressed() {
                //按下返回键时想要实现的方法
            }
        };
        //把回调函数添加到Activity中
        requireActivity().getOnBackPressedDispatcher().addCallback(
            this, // LifecycleOwner
            callback);
    }
}

 

Guess you like

Origin blog.csdn.net/TDSSS/article/details/126919758