2015-11-06 4 views
0

Пожалуйста, посмотрите на этот шаблон. Является ли это возможным ???Фрагмент перехода в андроид ...!

Фрагмент A> Фрагмент B> Фрагмент C> Фрагмент D> Фрагмент Е

индекс 0> Индекс 1> Индекс 2> Индекс 3> Индекс 4

Теперь то, что я хочу: >>>

Переключение из фрагмента E в Фрагмент B без удаления Фрагмент D и C также не добавляя снова Фрагмент E. и возможно, что индекс не будет осуществляться через это, потому что Мне нужно открыть Fragment E, если нажать еще один из B> C> D, будет работать как и раньше.

Благодаря

+0

заменить фрагмент E на фрагмент B –

+0

AFAIK Я боюсь, что вы не можете. Единственный взлом, который вы можете сделать, - это управлять своим фрагментом самостоятельно, например: создать свой собственный список фрагментов, а затем переопределить 'onBackPress', чтобы действовать как poping from backstack. –

+0

Что вы хотите достичь, сделав стек из 5 'Фрагментов'? – pskink

ответ

0
if (fragmentA == null) { 
    fragmentA = new AFragment(); 
    fragmentManager.beginTransaction().add(R.id.container1, fragmentA).commitAllowingStateLoss(); 
} else { 
    if (fragmentA != null) 
     fragmentManager.beginTransaction().show(fragmentA).commit(); 
    if (fragmentB != null) 
     fragmentManager.beginTransaction().hide(fragmentB).commit(); 
    if (fragmentC != null) 
     fragmentManager.beginTransaction().hide(fragmentC).commit(); 
    if (fragmentD != null) 
     fragmentManager.beginTransaction().hide(fragmentD).commit(); 
} 

Вы можете попробовать так, объявить фрагмент, если он имеет нулевое значение, то показать или скрыть в зависимости от ваших целей. container1 является расположение этой

<FrameLayout 
    android:id="@+id/container1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_above="@+id/lnBottomButton" /> 

Это главный вид, который содержит все фрагменты в деятельности

+0

, если я применим метод show .. Будет ли это сделано по индексу ??? –

+0

Вам не нужен индекс, просто проверьте, какой фрагмент вы хотите отобразить. В моем примере кода он используется для отображения AFragment, если FragmentB, вы просто так делаете, спрячьте все и покажите только B – BaDo

+0

показ не работает мне .. Прошу продумать с некоторыми фрагментами .. спасибо –

0

Если вы используете ViewPager, чем вы можете реализовать ViewPager.OnPageChangeListener и iots onPageSelected вы будете установить логику изменить страницу, используя, если иначе

@Override 
    public void onPageSelected(int position) { 
     // set you logic here and set the relevant Fragment to the pager 
} 
+0

Я не пользуюсь пейджером вида ... Это просто как изменение вида. Но мне нравится, как вы написали ... Может быть, он каким-то образом справится с этим. Я обновлю вас. Спасибо –

+0

Я думаю, вам стоит перейти на просмотр пейджера, его легко реализовать –

+0

Хорошо, я проверю –

Смежные вопросы