Don't verify the scrollbar drawable
Avoids infinite invalidations caused by re-use of scrollbar drawable during a single draw() pass. Does not address the general problem of drawable reuse causing unnecessary invalidations as a result of calls to setBounds() invoking invalidateSelf(). Bug: 26533725 Change-Id: I99e9c2dfe4ddfc833569e40e7268dcb03e931fc9
This commit is contained in:
@@ -16937,8 +16937,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
|
|||||||
*/
|
*/
|
||||||
@CallSuper
|
@CallSuper
|
||||||
protected boolean verifyDrawable(Drawable who) {
|
protected boolean verifyDrawable(Drawable who) {
|
||||||
return who == mBackground || (mScrollCache != null && mScrollCache.scrollBar == who)
|
// Avoid verifying the scroll bar drawable so that we don't end up in
|
||||||
|| (mForegroundInfo != null && mForegroundInfo.mDrawable == who);
|
// an invalidation loop. This effectively prevents the scroll bar
|
||||||
|
// drawable from triggering invalidations and scheduling runnables.
|
||||||
|
return who == mBackground || (mForegroundInfo != null && mForegroundInfo.mDrawable == who);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user