Kotlin скрыть замененные фрагменты не работают - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть фрагмент с ограничениями, которые я хочу сохранить

    <fragment
    android:id="@+id/fr_test"
    android:name="com.test.FragmentTest"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

Я использую транзакции, чтобы скрыть / показать его и все. отлично работает

fm.beginTransaction().hide(mainActivity.fr_test).commit()
fm.beginTransaction().show(mainActivity.fr_test).commit()

Я использую транзакции для воссоздания фрагмента, сохраняя тот же контейнер, чтобы использовать те же ограничения

fm.beginTransaction().replace(R.id.mainActivity.fr_test, FragmentTest).commit()

Но если сейчас я пытаюсь скрыть / показать фрагмент с теми же ссылкамикак и раньше ничего не делает. Я полагаю, что ссылки потеряны, но я не знаю, как их найти. Я пытался сохранить ссылку следующим образом:

fragRef = FragmentTest()
viewsManager.fm.beginTransaction().replace(R.id.fr_test, fragRef).commit()

, а затем использовал:

fm.beginTransaction().hide(mainActivity.fragRef).commit()
fm.beginTransaction().show(mainActivity.fragRef).commit()

, но все равно делал то же самое.

Что я делаю не так?

1 Ответ

0 голосов
/ 06 ноября 2019

При звонке replace он звонит remove(fragment), а после звонка add(int, fragment, string). Я думаю, что вы должны использовать add метод вместо replace и контролировать свой пользовательский интерфейс, используя hide и show

...