Comment ajouter une animation en cliquant sur "onbackpressed" pour fragmenter


Bouledogue

Il y a un Fragment, il y a un bouton dedans, en appuyant sur le suivant Fragments'ouvre avec une animation, mais lorsque le bouton est enfoncé en arrière, c'est-à-dire onbackpressed, le précédent Fragmentest retourné, mais sans animation. Comment ajouter une animation en cliquant sur onbackpressed. Si je comprends bien, vous devez d'une manière ou d'une autre lui ajouter onbackpressedet lui attribuer une animation. Alors , comment ajouter onbackpressedà Fragment?

?entrez la description de l'image ici

Fragment d'où nous passons

public class FragmentAttraction extends Fragment {

    FragmentGyro fragmentGyro;
    BlankFragment blankFragment;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_attraction, container, false);
    }

    @Override
    public void onViewCreated(@NonNull final View view, @Nullable Bundle savedInstanceState) {

        fragmentGyro = new FragmentGyro();
        blankFragment= new BlankFragment();

        CardView gyro = requireView().findViewById(R.id.Gyro_);


        gyro.setOnClickListener(v -> {
            FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
            ft.setCustomAnimations(R.anim.transition_enter, R.anim.transition_exit);
            ft.replace(R.id.fragment, blankFragment, "detailFragment");
            ft.addToBackStack(null);
            ft.commit();
        });
    }
}

Le Fragmentnous allons à

public class FragmentGyro extends Fragment {

    private final String[] imageUrls = new String[]{
            "https://cdn.pixabay.com/photo/2016/11/11/23/34/cat-1817970_960_720.jpg",
            "https://cdn.pixabay.com/photo/2017/12/21/12/26/glowworm-3031704_960_720.jpg",
            "https://cdn.pixabay.com/photo/2017/12/24/09/09/road-3036620_960_720.jpg",
            "https://cdn.pixabay.com/photo/2017/11/07/00/07/fantasy-2925250_960_720.jpg",
            "https://cdn.pixabay.com/photo/2017/10/10/15/28/butterfly-2837589_960_720.jpg"
    };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_gyro, container, false);

    }

    @Override
    public void onViewCreated(@NonNull final View view, @Nullable Bundle savedInstanceState) {
        ViewPager viewPager = requireView().findViewById(R.id.view);
        ViewPagerAdapter adapter = new ViewPagerAdapter(requireActivity(), imageUrls);
        viewPager.setAdapter(adapter);

        TextView text = requireView().findViewById(R.id.text_o);

        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @SuppressLint("DefaultLocale")
            @Override
            public void onPageSelected(int position)
            {
                text.setText(String.format("%d/%d", position, 4 ));
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
    }
}
ianhanniballake

Il existe deux versions de setCustomAnimations():

  • Celui que vous utilisez, qui ne prend que l' animation enteretexit
  • La version à quatre arguments qui prend également une animation popEnteret popExit- ce sont les animations qui sont exécutées lorsque le fragment est éclaté (c'est-à-dire lorsque vous appuyez sur le bouton de retour).
ft.setCustomAnimations(R.anim.transition_enter, R.anim.transition_exit,
    R.anim.transition_enter, R.anim.transition_exit);

Articles connexes


Ajouter une animation de classe en cliquant sur jquery

LearntoExcel J'essaye d'ajouter une classe d'animation à mon div en utilisant jquery onclick mais cela ne semble pas fonctionner. Quelqu'un voudrait-il prendre quelques secondes pour regarder mon violon et m'en expliquer la raison? Merci. Ce que j'essaie d'acc

Comment créer une animation en cliquant sur un TextView?

george_louis Comment animer un TextView pour qu'il agisse comme un bouton lorsqu'il est enfoncé longtemps? J'ai créé un TextView en utilisant ce code <TextView android:text="Start" android:layout_width="match_parent" android:layout_height="wrap_con