У меня есть фрагмент A, который включает SwipeRefresh и RecycleView. Когда пользователь щелкает элемент в RecycleView, я заменяю новый фрагмент B:
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 на экране. Я вижу фрагмент B под своим RecycleView во фрагменте A! Я больше не могу прокручивать в recycleView, поскольку onStop()
вызывается во фрагменте A, а onCreateView
вызывается во фрагменте B.
Что может быть причиной? у вас есть обходной путь?
Дополнение: сбой также можно воспроизвести в образце Google:
https://github.com/googlesamples/android-FragmentTransition/