Új hozzászólás Aktív témák

  • thon73
    tag

    Sziasztok!

    Ezúttal már tényleg olyasmi amit nem tudok. Adott 3 fragment, legynek A, B és C. Mindegyik között replace tranzakcióval navigálok, A -> B -> C. Mindig ez a sorrend. A amikor B-re megy akkor hozzáadja magát a back stachez. B amikor C-re megy, akkor nem. C-ről pedig popBackStack-el visszamegyek A-ra. Első körben ezt tökéletesen működik. Második körben viszont amikor C-n hívom a popBackStack-et, akkor C marad elől, a backStack kiürül. Mindig az R.id.content részre hívok replace-t.

    Kérdés, miért nem jön vissza második esetben az A fragment tartalma?

    Minden ötletet köszönök!

    Sianis

    Először is mindenkinek köszönöm a GIT-es útmutatókat; kezdem átlátni, hogy mit is kell csinálni. Kis trouble, hogy itt proxy mögött vagyok, de sebaj, majd otthon linux alól. Mellékesen jegyzem meg, hogy az AIDE tableten (használja vki?) elvileg a menüsorból tudja az egészet, ezért gondoltam hogy könnyebb lesz. ((Igaz, még azt sem próbáltam, csak láttam)) Köszönöm! :R

    to Sianis:
    Szerintem az a hiba, hogy a BackStack NEM a fragmentet, hanem az oda vezető utat tárolja. A->B azt jelenti, hogy az A-B replace kerül a stackra. Amikor ezt C-ről hívod, akkor - elvileg - a B->A replace-t végzi el újra. Nagy a gyanúm, hogy a lejátszás már ott elakad, hogy nincs meg a B fragment. Replace-t én ugyan ritkán használtam, de ha kettébontod remove-ra és add-ra, akkor talán könnyebb felderíteni a hibát.
    Én azt gondolom, hogy az add(B) részt felesleges a Stackra tenni, csak a remove(A)-t tedd rá! Ha ezt a tranzakciót játszod vissza, akkor - elvileg - meg kell jelennie A-nak. Elvileg. És szerintem. De nem tudtam kipróbálni.
    ((Bocs, még annyi, hogy természetesen a remove(B) és remove(C)-re is szükség van a megfelelő helyen, csak nem a visszapörgetésben.))

Új hozzászólás Aktív témák