0

如何将Fragment_1 Fragment_2替换为能够返回状态和Fragment_1(滚动,输入,表单,其他)的能力?Android:如何开始一个新的片段而不破坏前一个片段的状态?

enter image description here

如果您使用的活动,那么你可以使用的方法startActivityForResult。该方法的工作完美地显示了当前带有碎片的任务。

我不想保存这些值然后替换它们。我们需要Fragment_1保持完好。

如何在新的fragment_N打开时保存以前片段的状态,以及何时使用backstack打开屏幕?

是否有一个准备好的库来执行这些任务?

+0

您可以添加新的片段,并隐藏当前 –

+0

回来从堆栈中不会亏隐藏片段 –

+0

@bhargav的状态隐藏片段, 是否可以显示用于动画创建/删除/隐藏片段? – Qulery

回答

0
FragmentTransaction t = getFragmentManager.beginTransaction(); 
t.hide(your_current_fragment); 
t.add(container, new_fragment); 
t.addToBackStack(TAG); 
t.setCustomAnimations(R.anim.open_enter,R.anim.close_exit,R.anim.open_enter,R.anim.close_exit) 

t.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) 
t.setTrans 
t.commit(); 

更换FragmentPagerAdapter包含2 FrameLayoutfragment。您可以自由更改fragment in FrameLayout

+0

如何在FragmentStatePagerAdapter中创建片段? – Qulery

+0

在ViewPager中?用FragmentStatePagerAdapter和setoffsetlimit替换FragmentPagerAdapter来统计你的页面! –

+0

Plz告诉我你想要achevie什么。 –

1

而不是替换片段,您可以添加一个新的片段并隐藏当前的片段。

像这样的事情

FragmentTransaction t = getFragmentManager.beginTransaction(); 
t.hide(your_current_fragment); 
t.add(container, new_fragment); 
t.addToBackStack(TAG); 
t.commit(); 

它不会有HorizontalScrollView亏隐藏片段的状态

+0

是否可以显示/隐藏用于动画创建/删除的片段? – Qulery

+0

是的,你可以使用显示和隐藏用于动画的片段 –

+0

当屏幕的政变时怎么办?片段重新创建。 – Qulery