Merge "Fix underdraw during resizing" into oc-dev

This commit is contained in:
Jorim Jaggi
2017-05-19 15:42:46 +00:00
committed by Android (Google) Code Review
2 changed files with 16 additions and 4 deletions

View File

@@ -296,7 +296,11 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind
@Override
public void onDraw(Canvas c) {
super.onDraw(c);
mBackgroundFallback.draw(mContentRoot, c, mWindow.mContentParent);
// When we are resizing, we need the fallback background to cover the area where we have our
// system bar background views as the navigation bar will be hidden during resizing.
mBackgroundFallback.draw(isResizing() ? this : mContentRoot, mContentRoot, c,
mWindow.mContentParent);
}
@Override

View File

@@ -39,14 +39,22 @@ public class BackgroundFallback {
return mBackgroundFallback != null;
}
public void draw(ViewGroup root, Canvas c, View content) {
/**
* Draws the fallback background.
*
* @param boundsView The view determining with which bounds the background should be drawn.
* @param root The view group containing the content.
* @param c The canvas to draw the background onto.
* @param content The view where the actual app content is contained in.
*/
public void draw(ViewGroup boundsView, ViewGroup root, Canvas c, View content) {
if (!hasFallback()) {
return;
}
// Draw the fallback in the padding.
final int width = root.getWidth();
final int height = root.getHeight();
final int width = boundsView.getWidth();
final int height = boundsView.getHeight();
int left = width;
int top = height;
int right = 0;