Keep clear-all button revealed after dismiss

If it was visible before the dismiss, it will be visible after that.
As a nice side effect, it will preserve visibility on any layout, say,
after a rotation.

Bug: 79117932
Test: Manual
Change-Id: Ia8a544af1326458d4e2d7a07ae2b668f604bc0b3
This commit is contained in:
Vadim Tryshev
2018-05-10 15:42:42 -07:00
parent c14adabe99
commit 3154cd16b0
2 changed files with 31 additions and 7 deletions

View File

@@ -238,6 +238,12 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou
return index;
}
protected void scrollAndForceFinish(int scrollX) {
scrollTo(scrollX, 0);
mScroller.setFinalX(scrollX);
forceFinishScroller(true);
}
/**
* Updates the scroll of the current page immediately to its final scroll position. We use this
* in CustomizePagedView to allow tabs to share the same PagedView while resetting the scroll of
@@ -249,9 +255,7 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou
if (0 <= mCurrentPage && mCurrentPage < getPageCount()) {
newX = getScrollForPage(mCurrentPage);
}
scrollTo(newX, 0);
mScroller.setFinalX(newX);
forceFinishScroller(true);
scrollAndForceFinish(newX);
}
private void abortScrollerAnimation(boolean resetNextPage) {
@@ -538,6 +542,10 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou
setMeasuredDimension(widthSize, heightSize);
}
protected void restoreScrollOnLayout() {
setCurrentPage(getNextPage());
}
@SuppressLint("DrawAllocation")
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
@@ -589,7 +597,7 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou
}
if (mScroller.isFinished() && pageScrollChanged) {
setCurrentPage(getNextPage());
restoreScrollOnLayout();
}
}