Stop RecyclerView scroll in onDestroyView. Maybe it will fix Inconsistency detected error.

This commit is contained in:
seven332 committed 2016-03-24 13:27:48 +08:00
1 parent 6986a84cf6
commit 72c1190aa9
9 files changed
+106 -53

No files matched your search

@@ -147,7 +147,11 @@ public class DownloadLabelsScene extends ToolbarScene {
public void onDestroyView() {
super.onDestroyView();
mRecyclerView = null;
if (null != mRecyclerView) {
mRecyclerView.stopScroll();
mRecyclerView = null;
}
mViewTransition = null;
mAdapter = null;
}
@@ -420,6 +420,10 @@ public class DownloadsScene extends ToolbarScene
ViewUtils.removeFromParent(mShowcaseView);
mShowcaseView = null;
}
if (null != mRecyclerView) {
mRecyclerView.stopScroll();
mRecyclerView = null;
}
mRecyclerView = null;
mFabLayout = null;
@@ -405,8 +405,11 @@ public class FavoritesScene extends BaseScene implements
}
mHelper = null;
}
if (null != mRecyclerView) {
mRecyclerView.stopScroll();
mRecyclerView = null;
}
mRecyclerView = null;
mSearchBar = null;
mFabLayout = null;
@@ -78,6 +78,7 @@ public final class GalleryCommentsScene extends ToolbarScene
private String mToken;
private GalleryComment[] mComments;
private EasyRecyclerView mRecyclerView;
private FloatingActionButton mFab;
private View mEditPanel;
private ImageView mSendImage;
@@ -138,7 +139,7 @@ public final class GalleryCommentsScene extends ToolbarScene
public View onCreateView2(LayoutInflater inflater,
@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.scene_gallery_comments, container, false);
EasyRecyclerView recyclerView = (EasyRecyclerView) view.findViewById(R.id.recycler_view);
mRecyclerView = (EasyRecyclerView) view.findViewById(R.id.recycler_view);
TextView tip = (TextView) ViewUtils.$$(view, R.id.tip);
mEditPanel = ViewUtils.$$(view, R.id.edit_panel);
mSendImage = (ImageView) ViewUtils.$$(mEditPanel, R.id.send);
@@ -155,25 +156,25 @@ public final class GalleryCommentsScene extends ToolbarScene
tip.setCompoundDrawables(null, drawable, null, null);
mAdapter = new CommentAdapter();
recyclerView.setAdapter(mAdapter);
recyclerView.setLayoutManager(new LinearLayoutManager(context,
mRecyclerView.setAdapter(mAdapter);
mRecyclerView.setLayoutManager(new LinearLayoutManager(context,
LinearLayoutManager.VERTICAL, false));
LinearDividerItemDecoration decoration = new LinearDividerItemDecoration(
LinearDividerItemDecoration.VERTICAL, context.getResources().getColor(R.color.divider),
LayoutUtils.dp2pix(context, 1));
decoration.setShowLastDivider(true);
recyclerView.addItemDecoration(decoration);
recyclerView.setSelector(RippleSalon.generateRippleDrawable(false));
recyclerView.setHasFixedSize(true);
recyclerView.setOnItemClickListener(this);
recyclerView.setOnItemLongClickListener(this);
recyclerView.setPadding(recyclerView.getPaddingLeft(), recyclerView.getPaddingTop(),
recyclerView.getPaddingRight(), recyclerView.getPaddingBottom() + paddingBottomFab);
mRecyclerView.addItemDecoration(decoration);
mRecyclerView.setSelector(RippleSalon.generateRippleDrawable(false));
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setOnItemClickListener(this);
mRecyclerView.setOnItemLongClickListener(this);
mRecyclerView.setPadding(mRecyclerView.getPaddingLeft(), mRecyclerView.getPaddingTop(),
mRecyclerView.getPaddingRight(), mRecyclerView.getPaddingBottom() + paddingBottomFab);
mSendImage.setOnClickListener(this);
mFab.setOnClickListener(this);
mViewTransition = new ViewTransition(recyclerView, tip);
mViewTransition = new ViewTransition(mRecyclerView, tip);
if (mComments == null || mComments.length <= 0) {
mViewTransition.showView(1);
@@ -187,6 +188,12 @@ public final class GalleryCommentsScene extends ToolbarScene
@Override
public void onDestroyView() {
super.onDestroyView();
if (null != mRecyclerView) {
mRecyclerView.stopScroll();
mRecyclerView = null;
}
mAdapter = null;
mViewTransition = null;
}
@@ -57,6 +57,9 @@ public final class GalleryInfoScene extends ToolbarScene implements EasyRecycler
@Nullable
private ArrayList<String> mValues;
@Nullable
private EasyRecyclerView mRecyclerView;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -156,19 +159,19 @@ public final class GalleryInfoScene extends ToolbarScene implements EasyRecycler
Context context = getContext2();
AssertUtils.assertNotNull(context);
EasyRecyclerView recyclerView = (EasyRecyclerView) ViewUtils.$$(view, R.id.recycler_view);
mRecyclerView = (EasyRecyclerView) ViewUtils.$$(view, R.id.recycler_view);
InfoAdapter adapter = new InfoAdapter();
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false));
mRecyclerView.setAdapter(adapter);
mRecyclerView.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false));
LinearDividerItemDecoration decoration = new LinearDividerItemDecoration(
LinearDividerItemDecoration.VERTICAL, context.getResources().getColor(R.color.divider),
LayoutUtils.dp2pix(context, 1));
decoration.setPadding(context.getResources().getDimensionPixelOffset(R.dimen.keyline_margin));
recyclerView.addItemDecoration(decoration);
recyclerView.setSelector(RippleSalon.generateRippleDrawable(false));
recyclerView.setClipToPadding(false);
recyclerView.setHasFixedSize(true);
recyclerView.setOnItemClickListener(this);
mRecyclerView.addItemDecoration(decoration);
mRecyclerView.setSelector(RippleSalon.generateRippleDrawable(false));
mRecyclerView.setClipToPadding(false);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setOnItemClickListener(this);
return view;
}
@@ -179,6 +182,16 @@ public final class GalleryInfoScene extends ToolbarScene implements EasyRecycler
setNavigationIcon(R.drawable.v_arrow_left_dark_x24);
}
@Override
public void onDestroyView() {
super.onDestroyView();
if (null != mRecyclerView) {
mRecyclerView.stopScroll();
mRecyclerView = null;
}
}
@Override
public boolean onItemClick(EasyRecyclerView parent, View view, int position, long id) {
Context context = getContext2();
@@ -452,7 +452,7 @@ public final class GalleryListScene extends BaseScene
ViewUtils.removeFromParent(mShowcaseView);
mShowcaseView = null;
}
SimpleHandler.getInstance().removeCallbacks(mReturnSearchBarRunnable);
if (null != mSearchBarMover) {
mSearchBarMover.cancelAnimation();
mSearchBarMover = null;
@@ -467,8 +467,11 @@ public final class GalleryListScene extends BaseScene
}
mHelper = null;
}
if (null != mRecyclerView) {
mRecyclerView.stopScroll();
mRecyclerView = null;
}
mRecyclerView = null;
mSearchLayout = null;
mSearchBar = null;
mFab = null;
@@ -76,6 +76,8 @@ public class GalleryPreviewsScene extends ToolbarScene implements EasyRecyclerVi
View life cycle
---------------*/
@Nullable
private EasyRecyclerView mRecyclerView;
@Nullable
private GalleryPreviewAdapter mAdapter;
@Nullable
private GalleryPreviewHelper mHelper;
@@ -131,23 +133,23 @@ public class GalleryPreviewsScene extends ToolbarScene implements EasyRecyclerVi
ContentLayout contentLayout = (ContentLayout) inflater.inflate(
R.layout.scene_gallery_previews, container, false);
contentLayout.hideFastScroll();
EasyRecyclerView recyclerView = contentLayout.getRecyclerView();
mRecyclerView = contentLayout.getRecyclerView();
Context context = getContext2();
AssertUtils.assertNotNull(context);
Resources resources = context.getResources();
mAdapter = new GalleryPreviewAdapter();
recyclerView.setAdapter(mAdapter);
mRecyclerView.setAdapter(mAdapter);
int columnWidth = resources.getDimensionPixelOffset(R.dimen.preview_grid_column_width);
AutoGridLayoutManager layoutManager = new AutoGridLayoutManager(context, columnWidth);
layoutManager.setStrategy(AutoGridLayoutManager.STRATEGY_SUITABLE_SIZE);
recyclerView.setLayoutManager(layoutManager);
mRecyclerView.setLayoutManager(layoutManager);
int padding = LayoutUtils.dp2pix(context, 4);
recyclerView.setPadding(padding, padding, padding, padding);
recyclerView.setClipToPadding(false);
recyclerView.addItemDecoration(new MarginItemDecoration(padding));
recyclerView.setOnItemClickListener(this);
mRecyclerView.setPadding(padding, padding, padding, padding);
mRecyclerView.setClipToPadding(false);
mRecyclerView.addItemDecoration(new MarginItemDecoration(padding));
mRecyclerView.setOnItemClickListener(this);
mHelper = new GalleryPreviewHelper();
contentLayout.setHelper(mHelper);
@@ -171,6 +173,10 @@ public class GalleryPreviewsScene extends ToolbarScene implements EasyRecyclerVi
}
mHelper = null;
}
if (null != mRecyclerView) {
mRecyclerView.stopScroll();
mRecyclerView = null;
}
mAdapter = null;
}
@@ -76,6 +76,8 @@ public class HistoryScene extends ToolbarScene
View life cycle
---------------*/
@Nullable
private EasyRecyclerView mRecyclerView;
@Nullable
private ViewTransition mViewTransition;
@Nullable
private RecyclerView.Adapter<?> mAdapter;
@@ -93,7 +95,7 @@ public class HistoryScene extends ToolbarScene
@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.scene_history, container, false);
View content = ViewUtils.$$(view, R.id.content);
EasyRecyclerView recyclerView = (EasyRecyclerView) ViewUtils.$$(content, R.id.recycler_view);
mRecyclerView = (EasyRecyclerView) ViewUtils.$$(content, R.id.recycler_view);
FastScroller fastScroller = (FastScroller) ViewUtils.$$(content, R.id.fast_scroller);
TextView tip = (TextView) ViewUtils.$$(view, R.id.tip);
mViewTransition = new ViewTransition(content, tip);
@@ -113,25 +115,25 @@ public class HistoryScene extends ToolbarScene
mAdapter = new HistoryAdapter();
mAdapter.setHasStableIds(true);
mAdapter = swipeManager.createWrappedAdapter(mAdapter);
recyclerView.setAdapter(mAdapter);
mRecyclerView.setAdapter(mAdapter);
final GeneralItemAnimator animator = new SwipeDismissItemAnimator();
animator.setSupportsChangeAnimations(false);
recyclerView.setItemAnimator(animator);
mRecyclerView.setItemAnimator(animator);
LinearLayoutManager layoutManager = new LinearLayoutManager(context);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setSelector(RippleSalon.generateRippleDrawable(false));
recyclerView.setDrawSelectorOnTop(true);
recyclerView.hasFixedSize();
recyclerView.setClipToPadding(false);
recyclerView.setOnItemClickListener(this);
recyclerView.setOnItemLongClickListener(this);
mRecyclerView.setLayoutManager(layoutManager);
mRecyclerView.setSelector(RippleSalon.generateRippleDrawable(false));
mRecyclerView.setDrawSelectorOnTop(true);
mRecyclerView.hasFixedSize();
mRecyclerView.setClipToPadding(false);
mRecyclerView.setOnItemClickListener(this);
mRecyclerView.setOnItemLongClickListener(this);
int paddingH = resources.getDimensionPixelOffset(R.dimen.list_content_margin_h);
int paddingV = resources.getDimensionPixelOffset(R.dimen.list_content_margin_v);
recyclerView.setPadding(paddingV, paddingH, paddingV, paddingH);
guardManager.attachRecyclerView(recyclerView);
swipeManager.attachRecyclerView(recyclerView);
mRecyclerView.setPadding(paddingV, paddingH, paddingV, paddingH);
guardManager.attachRecyclerView(mRecyclerView);
swipeManager.attachRecyclerView(mRecyclerView);
fastScroller.attachToRecyclerView(recyclerView);
fastScroller.attachToRecyclerView(mRecyclerView);
HandlerDrawable handlerDrawable = new HandlerDrawable();
handlerDrawable.setColor(ResourcesUtils.getAttrColor(context, R.attr.colorAccent));
fastScroller.setHandlerDrawable(handlerDrawable);
@@ -157,6 +159,10 @@ public class HistoryScene extends ToolbarScene
mLazyList.close();
mLazyList = null;
}
if (null != mRecyclerView) {
mRecyclerView.stopScroll();
mRecyclerView = null;
}
mViewTransition = null;
mAdapter = null;
@@ -66,6 +66,8 @@ public final class QuickSearchScene extends ToolbarScene {
View life cycle
---------------*/
@Nullable
private EasyRecyclerView mRecyclerView;
@Nullable
private ViewTransition mViewTransition;
@Nullable
private RecyclerView.Adapter mAdapter;
@@ -89,9 +91,9 @@ public final class QuickSearchScene extends ToolbarScene {
@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.scene_label_list, container, false);
EasyRecyclerView recyclerView = (EasyRecyclerView) ViewUtils.$$(view, R.id.recycler_view);
mRecyclerView = (EasyRecyclerView) ViewUtils.$$(view, R.id.recycler_view);
TextView tip = (TextView) ViewUtils.$$(view, R.id.tip);
mViewTransition = new ViewTransition(recyclerView, tip);
mViewTransition = new ViewTransition(mRecyclerView, tip);
Context context = getContext2();
AssertUtils.assertNotNull(context);
@@ -118,13 +120,13 @@ public final class QuickSearchScene extends ToolbarScene {
mAdapter = adapter;
final GeneralItemAnimator animator = new SwipeDismissItemAnimator();
animator.setSupportsChangeAnimations(false);
recyclerView.hasFixedSize();
recyclerView.setLayoutManager(new LinearLayoutManager(context));
recyclerView.setAdapter(adapter);
recyclerView.setItemAnimator(animator);
guardManager.attachRecyclerView(recyclerView);
swipeManager.attachRecyclerView(recyclerView);
dragDropManager.attachRecyclerView(recyclerView);
mRecyclerView.hasFixedSize();
mRecyclerView.setLayoutManager(new LinearLayoutManager(context));
mRecyclerView.setAdapter(adapter);
mRecyclerView.setItemAnimator(animator);
guardManager.attachRecyclerView(mRecyclerView);
swipeManager.attachRecyclerView(mRecyclerView);
dragDropManager.attachRecyclerView(mRecyclerView);
updateView();
@@ -142,6 +144,11 @@ public final class QuickSearchScene extends ToolbarScene {
public void onDestroyView() {
super.onDestroyView();
if (null != mRecyclerView) {
mRecyclerView.stopScroll();
mRecyclerView = null;
}
mViewTransition = null;
mAdapter = null;
}