Android - Как перейти непосредственно к предыдущему действию в заднем стеке и игнорировать обратный стек фрагментов или оставшиеся фрагменты в текущем действии? - PullRequest
0 голосов
/ 12 октября 2018

Есть вопросы, касающиеся бэк-стека и fragmentManager, но я не нашел ни одного, у которых есть подобный вариант использования.

Итак, вот мой пример использования: на планшете у меня основное действие наслева, который выступает в качестве навигационной страницы, а фрагменты отображаются справа, когда пользователи нажимают на объекты слева.Например, при нажатии на General страница general будет отображаться справа.Допустим, я перешел от Homepage к этому Settings занятию, которое имеет General и другие настройки, я показываю страницу General справа по умолчанию на планшете (чтобы правая часть не была пустой)и когда я нажимаю кнопку «назад», я хочу вернуться прямо к Homepage вместо отображения пустой правой части.Я исправил это следующим образом:

override fun onBackPressed() {
    //some code
    if (isTabletLayout && supportFragmentManager.backStackEntryCount == 1) {
        supportFragmentManager.popBackStack()
    }
    super.onBackPressed()
    //some other code
}

Однако, даже если я сделаю это, я увижу, что правая часть мигает пустым, а затем мне показали предыдущее действие (в примере, Homepage)

Теперь мне интересно, могу ли я просто проигнорировать этот последний фрагмент или удалить задний стек фрагментов, когда остался только один фрагмент, и напрямую показать предыдущее действие?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Есть способ обойтись, просто позвонив finish();

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

Измените свой пользовательский интерфейс сейчас и избегайте больших проблем в будущем.

0 голосов
/ 12 октября 2018
@Override
public void onBackPressed() {
    finish();
}

Просто вызовите finish () для метода onBackPressed ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...