Merge "Set secondaryView to GONE when invisible" into rvc-dev am: 20309013ef
Change-Id: Iae3e80de905f69942cb02f0b5237236e1cf79316
This commit is contained in:
@@ -47,6 +47,18 @@ public abstract class StackScrollerDecorView extends ExpandableView {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private boolean mSecondaryAnimating = false;
|
||||||
|
private final Runnable mSecondaryVisibilityEndRunnable = () -> {
|
||||||
|
mSecondaryAnimating = false;
|
||||||
|
// If we were on screen, become GONE to avoid touches
|
||||||
|
if (mSecondaryView == null) return;
|
||||||
|
if (getVisibility() != View.GONE
|
||||||
|
&& mSecondaryView.getVisibility() != View.GONE
|
||||||
|
&& !mIsSecondaryVisible) {
|
||||||
|
mSecondaryView.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
public StackScrollerDecorView(Context context, AttributeSet attrs) {
|
public StackScrollerDecorView(Context context, AttributeSet attrs) {
|
||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
setClipChildren(false);
|
setClipChildren(false);
|
||||||
@@ -88,9 +100,11 @@ public abstract class StackScrollerDecorView extends ExpandableView {
|
|||||||
private void setContentVisible(boolean contentVisible, boolean animate) {
|
private void setContentVisible(boolean contentVisible, boolean animate) {
|
||||||
if (mContentVisible != contentVisible) {
|
if (mContentVisible != contentVisible) {
|
||||||
mContentAnimating = animate;
|
mContentAnimating = animate;
|
||||||
setViewVisible(mContent, contentVisible, animate, mContentVisibilityEndRunnable);
|
|
||||||
mContentVisible = contentVisible;
|
mContentVisible = contentVisible;
|
||||||
} if (!mContentAnimating) {
|
setViewVisible(mContent, contentVisible, animate, mContentVisibilityEndRunnable);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!mContentAnimating) {
|
||||||
mContentVisibilityEndRunnable.run();
|
mContentVisibilityEndRunnable.run();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -136,8 +150,13 @@ public abstract class StackScrollerDecorView extends ExpandableView {
|
|||||||
*/
|
*/
|
||||||
public void setSecondaryVisible(boolean nowVisible, boolean animate) {
|
public void setSecondaryVisible(boolean nowVisible, boolean animate) {
|
||||||
if (mIsSecondaryVisible != nowVisible) {
|
if (mIsSecondaryVisible != nowVisible) {
|
||||||
setViewVisible(mSecondaryView, nowVisible, animate, null /* endRunnable */);
|
mSecondaryAnimating = animate;
|
||||||
mIsSecondaryVisible = nowVisible;
|
mIsSecondaryVisible = nowVisible;
|
||||||
|
setViewVisible(mSecondaryView, nowVisible, animate, mSecondaryVisibilityEndRunnable);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!mSecondaryAnimating) {
|
||||||
|
mSecondaryVisibilityEndRunnable.run();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,6 +189,12 @@ public abstract class StackScrollerDecorView extends ExpandableView {
|
|||||||
if (view == null) {
|
if (view == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Make sure we're visible so animations work
|
||||||
|
if (view.getVisibility() != View.VISIBLE) {
|
||||||
|
view.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
// cancel any previous animations
|
// cancel any previous animations
|
||||||
view.animate().cancel();
|
view.animate().cancel();
|
||||||
float endValue = nowVisible ? 1.0f : 0.0f;
|
float endValue = nowVisible ? 1.0f : 0.0f;
|
||||||
|
|||||||
Reference in New Issue
Block a user