Chcę się nauczyć jak korzystać z fragmentów (android). Znalazłem na YT jakiś przykład, wg niego robiłem i problem wygląda tak, że odpalam aplikację i klikam w button2, by podmieniło mi domyślny fragment1 na fragment2, ale niestety pod fragment2 widać fragment1 (który robi jakby za tło). Chcę wiedzieć co powoduje ten błąd.
główny xml projektu:
<fragment
android:id="@+id/fragment_place"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.example.xyz.test.FragmentOne"
/>
główna klasa (metoda podmieniająca fragmenty):
public void changeFragment(View view)
{
Fragment fragment;
if (view == findViewById(R.id.button1))
{
fragment = new FragmentOne();
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment_place, fragment);
ft.commit();
}
if (view == findViewById(R.id.button2))
{
fragment = new FragmentTwo();
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment_place, fragment);
ft.commit();
}
}
Program możecie sobie wyobrazić tak - dwa buttony, a pod nimi fragment
. Po włączeniu aplikacji, domyślnie pojawia się FragmentOne
. Wciśnięcie button1
powoduje podmienienie tego kontenera fragmentowego na FragmentOne
, a button2
robi to samo, ale podmienia na FragmentTwo
i tyle.
Nie jestem pewien, ale czy możliwe, że domyślnie wczytywany FragmentOne
(bez klikania w buttony) po prostu się nie zamyka i zostaje robiąc za tło?
Bardzo bym prosił kogoś z was o wskazanie mi czego mi brakuje w kodzie, co powoduje ten bug. Próbowałem do metody dla buttonów dopisać:
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE);
i podobne kody, ale nic nie dały.
Będę bardzo wdzięczny jeśli ktoś spróbuje mi pomóc. Pozdrawiam.