我有片段A,其中包含SwipeRefresh和RecycleView。 当在RecycleView该产品的用户点击,我更换一个新的片段,其为B:当swipeRefresh正在运行时替换片段无法正常工作
mAdapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
Item tem = mItems.get(position);
// selected item
Log.i(TAG, item.getTitle() + " clicked. Replacing fragment.");
// We start the fragment transaction here. It is just an ordinary fragment transaction.
getActivity().getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_fragment,
FragmentB.newInstance(item,
(int) view.getX(), (int) view.getY(),
view.getWidth(), view.getHeight())
)
// We push the fragment transaction to back stack. User can go back to the
// previous fragment by pressing back button.
.addToBackStack("detail")
.commit();
}
});
这里有一个问题:
当我开始使用SwipeRefresh刷新,并仍在运行,我点击一个项目(因为你可以看到上面的代码),片段B将被替换under
屏幕中的片段A. 我可以在片段A的RecycleView下看到片段B! 我不再能够因为onStop()
在recycleView滚动就是所谓的片段A和onCreateView
被称为片段B.
可能是什么原因?你有任何解决方法?
附录:崩溃可能是谷歌样品中重现,以及:
https://github.com/googlesamples/android-FragmentTransition/
试试这个请: http://stackoverflow.com/a/29251199/4693713 希望它会帮助你。 – 2015-03-25 11:07:58
这与我的代码有什么不同? :) – Ali 2015-03-25 12:03:47
不使用addToBackStack可能会工程.. – 2015-03-25 12:13:54