@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int widthSpecMode = MeasureSpec.getMode(widthMeasureSpec); int widthSpecSize = MeasureSpec.getSize(widthMeasureSpec); int heightSpecMode = MeasureSpec.getMode(heightMeasureSpec); int heightSpecSize = MeasureSpec.getSize(heightMeasureSpec); if (DBG) { if (widthSpecMode == MeasureSpec.UNSPECIFIED || heightSpecMode == MeasureSpec.UNSPECIFIED) { Log.e( "SlidingTab", "SlidingTab cannot have UNSPECIFIED MeasureSpec" + "(wspec=" + widthSpecMode + ", hspec=" + heightSpecMode + ")", new RuntimeException(LOG_TAG + "stack:")); } } mLeftSlider.measure(widthMeasureSpec, heightMeasureSpec); mRightSlider.measure(widthMeasureSpec, heightMeasureSpec); final int leftTabWidth = mLeftSlider.getTabWidth(); final int rightTabWidth = mRightSlider.getTabWidth(); final int leftTabHeight = mLeftSlider.getTabHeight(); final int rightTabHeight = mRightSlider.getTabHeight(); final int width; final int height; if (isHorizontal()) { width = Math.max(widthSpecSize, leftTabWidth + rightTabWidth); height = Math.max(leftTabHeight, rightTabHeight); } else { width = Math.max(leftTabWidth, rightTabHeight); height = Math.max(heightSpecSize, leftTabHeight + rightTabHeight); } setMeasuredDimension(width, height); }