Loading tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/LayoutSceneImpl.java +20 −9 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import com.android.layoutlib.api.SceneParams; import com.android.layoutlib.api.SceneResult; import com.android.layoutlib.api.ViewInfo; import com.android.layoutlib.api.IDensityBasedResourceValue.Density; import com.android.layoutlib.api.SceneParams.RenderingMode; import com.android.layoutlib.bridge.BridgeConstants; import com.android.layoutlib.bridge.android.BridgeContext; import com.android.layoutlib.bridge.android.BridgeInflater; Loading Loading @@ -259,24 +260,34 @@ public class LayoutSceneImpl { int renderScreenWidth = mParams.getScreenWidth(); int renderScreenHeight = mParams.getScreenHeight(); if (mParams.getRenderFullSize()) { RenderingMode renderingMode = mParams.getRenderingMode(); if (renderingMode != RenderingMode.NORMAL) { // measure the full size needed by the layout. w_spec = MeasureSpec.makeMeasureSpec(renderScreenWidth, MeasureSpec.UNSPECIFIED); // this lets us know the actual needed size renderingMode.isHorizExpand() ? MeasureSpec.UNSPECIFIED // this lets us know the actual needed size : MeasureSpec.EXACTLY); h_spec = MeasureSpec.makeMeasureSpec(renderScreenHeight - mScreenOffset, MeasureSpec.UNSPECIFIED); // this lets us know the actual needed size renderingMode.isVertExpand() ? MeasureSpec.UNSPECIFIED // this lets us know the actual needed size : MeasureSpec.EXACTLY); mViewRoot.measure(w_spec, h_spec); if (renderingMode.isHorizExpand()) { int neededWidth = mViewRoot.getChildAt(0).getMeasuredWidth(); if (neededWidth > renderScreenWidth) { renderScreenWidth = neededWidth; } } if (renderingMode.isVertExpand()) { int neededHeight = mViewRoot.getChildAt(0).getMeasuredHeight(); if (neededHeight > renderScreenHeight - mScreenOffset) { renderScreenHeight = neededHeight + mScreenOffset; } } } // remeasure with the size we need // This must always be done before the call to layout Loading Loading
tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/LayoutSceneImpl.java +20 −9 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import com.android.layoutlib.api.SceneParams; import com.android.layoutlib.api.SceneResult; import com.android.layoutlib.api.ViewInfo; import com.android.layoutlib.api.IDensityBasedResourceValue.Density; import com.android.layoutlib.api.SceneParams.RenderingMode; import com.android.layoutlib.bridge.BridgeConstants; import com.android.layoutlib.bridge.android.BridgeContext; import com.android.layoutlib.bridge.android.BridgeInflater; Loading Loading @@ -259,24 +260,34 @@ public class LayoutSceneImpl { int renderScreenWidth = mParams.getScreenWidth(); int renderScreenHeight = mParams.getScreenHeight(); if (mParams.getRenderFullSize()) { RenderingMode renderingMode = mParams.getRenderingMode(); if (renderingMode != RenderingMode.NORMAL) { // measure the full size needed by the layout. w_spec = MeasureSpec.makeMeasureSpec(renderScreenWidth, MeasureSpec.UNSPECIFIED); // this lets us know the actual needed size renderingMode.isHorizExpand() ? MeasureSpec.UNSPECIFIED // this lets us know the actual needed size : MeasureSpec.EXACTLY); h_spec = MeasureSpec.makeMeasureSpec(renderScreenHeight - mScreenOffset, MeasureSpec.UNSPECIFIED); // this lets us know the actual needed size renderingMode.isVertExpand() ? MeasureSpec.UNSPECIFIED // this lets us know the actual needed size : MeasureSpec.EXACTLY); mViewRoot.measure(w_spec, h_spec); if (renderingMode.isHorizExpand()) { int neededWidth = mViewRoot.getChildAt(0).getMeasuredWidth(); if (neededWidth > renderScreenWidth) { renderScreenWidth = neededWidth; } } if (renderingMode.isVertExpand()) { int neededHeight = mViewRoot.getChildAt(0).getMeasuredHeight(); if (neededHeight > renderScreenHeight - mScreenOffset) { renderScreenHeight = neededHeight + mScreenOffset; } } } // remeasure with the size we need // This must always be done before the call to layout Loading