[Android] Fragmenty - wyrzucanie ze stosu

0

Cześć,

Zaczynam zabawę z Androidem i napotkałem problem z fragmentami.
Stworzyłem aktywność poboczną z 6 przyciskami oraz z polem fragments, po naciśnięciu każdego przycisku w polu frgments podmieniane są informacje.
Wszystko ładnie działa ale po nacisnięnciu klawisza fizycznego BACK, "wraca" przez wszystkie oglądane fragmenty do aktywności głównej.

Jak wyrzucić fragment ze stosu po naciśnięciu innego przycisku?

Dzięki

0
FragmentManager _manager = getActivity().getSupportFragmentManager();
_manager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
0

Jeżeli nie zależy ci na historii fragmentów to dodawaj je metodą replace

0

Plik .java wygląda tak:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction transaction = fm.beginTransaction();
        StartFragment startFragment = new StartFragment();
        transaction.add(R.id.fragment_placeholder, startFragment);
        transaction.commit();
        
    }

    public void onSelectFragment(View view) {

        Fragment newfragment;

        if (view == findViewById(R.id.btnStartFrag)) {
            newfragment = new StartFragment();

        } else if (view == findViewById(R.id.btnFrag01)) {
            newfragment = new Fragment01();
        } else if (view == findViewById(R.id.imageButton)) {
            newfragment = new Fragment02();
        } else {
            newfragment = new StartFragment();
        }

        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        transaction.replace(R.id.fragment_placeholder, newfragment);
        transaction.addToBackStack(null);
        transaction.commit();
    }
}

Kolego Haskell co pozmieniać aby było OK?
Kolego Weoły Kura nie zależy mi na historii natomiast próbowałem z replace ale to jeszcze nie mój poziom.

1

Wywal tę linijkę transaction.addToBackStack(null);

0

Super, jest tak jak chciałem.
Dzięki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1