我正在尝试Android TransitionManager,只要我没有片段,它就会很好用。这是一个基本的Scene
设置,在场景转换后的setEnterAction()
中,findViewById
用于重新附加视图。
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_part2,
container, false);
mContainer = (ViewGroup)view.findViewById(R.id.container);
mTxManager = new TransitionManager();
Transition transition = new ChangeBounds();
mScene2 = Scene.getSceneForLayout(mContainer, R.layout.grid1, getActivity());
mScene1 = Scene.getSceneForLayout(mContainer, R.layout.grid1, getActivity());
mScene1.setEnterAction(new Runnable() {
@Override
public void run() {
mScene1.getSceneRoot().findViewById(R.id.item2).setOnClickListener(Part2.this);
mScene1.getSceneRoot().findViewById(R.id.item3).setOnClickListener(Part2.this);
}
});
}
我遇到的问题是我Fragment
中有一个mScene1
而且丢失了。我没有在xml中设置Fragment
。如何在场景移位之间仅使用一个片段而不删除它并再次添加它。这是一个补充文件Fragmnet所以我必须让它保持活力吗?
我正在做的并且不满意的是在Fragment
退出时移除mScene1
:
mScene1.setExitAction(new Runnable() {
@Override
public void run() {
Fragment f = getChildFragmentManager().findFragmentByTag(HistoryFragment.class.getName());
FragmentTransaction transaction1 = getChildFragmentManager().beginTransaction();
transaction1.remove(f);
transaction1.commitNow();
}
});
然后当mScene1.setEnterAction()
运行时,我重新连接了Fragment
。我注意到我的应用程序开始有点滞后,因为添加删除的额外工作。
有没有办法在Scene´s
之间只有一个Frag?