我有片段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