@@ -221,30 +221,35 @@ protected void onMeasure(int widthSpec, int heightSpec) {
221221 if (lp .centerWithinArea > 0 ) {
222222 if (mOrientation == HORIZONTAL ) {
223223 adjustedWidthSpec = MeasureSpec .makeMeasureSpec (
224- (int ) (width * lp .centerWithinArea + 0.5f ), MeasureSpec .EXACTLY );
225- adjustedHeightSpec = heightSpec ;
224+ (int ) ((width - widthUsed ) * lp .centerWithinArea + 0.5f ),
225+ MeasureSpec .EXACTLY );
226+ adjustedHeightSpec = MeasureSpec .makeMeasureSpec (
227+ MeasureSpec .getSize (heightSpec ) - heightUsed , MeasureSpec .EXACTLY );
226228 } else {
227- adjustedWidthSpec = widthSpec ;
229+ adjustedWidthSpec = MeasureSpec .makeMeasureSpec (
230+ MeasureSpec .getSize (widthSpec ) - widthUsed , MeasureSpec .EXACTLY );
228231 adjustedHeightSpec = MeasureSpec .makeMeasureSpec (
229- (int ) (height * lp .centerWithinArea + 0.5f ), MeasureSpec .EXACTLY );
232+ (int ) ((height - heightUsed ) * lp .centerWithinArea + 0.5f ),
233+ MeasureSpec .EXACTLY );
230234 }
231235 } else {
232- adjustedWidthSpec = widthSpec ;
233- adjustedHeightSpec = heightSpec ;
236+ adjustedWidthSpec = MeasureSpec .makeMeasureSpec (
237+ MeasureSpec .getSize (widthSpec ) - widthUsed , MeasureSpec .EXACTLY );
238+ adjustedHeightSpec = MeasureSpec .makeMeasureSpec (
239+ MeasureSpec .getSize (heightSpec ) - heightUsed , MeasureSpec .EXACTLY );
234240 }
235241 if (lp .maxWidth >= 0 ) {
236242 adjustedWidthSpec = MeasureSpec .makeMeasureSpec (
237- Math .min (lp .maxWidth , MeasureSpec .getSize (widthSpec )),
243+ Math .min (lp .maxWidth , MeasureSpec .getSize (adjustedWidthSpec )),
238244 MeasureSpec .EXACTLY );
239245 }
240246 if (lp .maxHeight >= 0 ) {
241247 adjustedHeightSpec = MeasureSpec .makeMeasureSpec (
242- Math .min (lp .maxHeight , MeasureSpec .getSize (heightSpec )),
248+ Math .min (lp .maxHeight , MeasureSpec .getSize (adjustedHeightSpec )),
243249 MeasureSpec .EXACTLY );
244250 }
245251
246- measureChildWithMargins (child , adjustedWidthSpec , widthUsed ,
247- adjustedHeightSpec , heightUsed );
252+ measureChildWithMargins (child , adjustedWidthSpec , 0 , adjustedHeightSpec , 0 );
248253 }
249254 }
250255
0 commit comments