下面列出了android.support.v4.view.ViewCompat#getMeasuredWidthAndState ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
final ViewPager viewPager = mViewPager;
measureChild(viewPager, widthMeasureSpec, heightMeasureSpec);
final int measuredWidthAndState = ViewCompat.getMeasuredWidthAndState(viewPager);
final int measuredHeightAndState = ViewCompat.getMeasuredHeightAndState(viewPager);
setMeasuredDimension(measuredWidthAndState, measuredHeightAndState);
final int pagerWidth = viewPager.getMeasuredWidth();
final int pagerHeight = viewPager.getMeasuredHeight();
final int buttonWidthSpec = MeasureSpec.makeMeasureSpec(pagerWidth, MeasureSpec.AT_MOST);
final int buttonHeightSpec = MeasureSpec.makeMeasureSpec(pagerHeight, MeasureSpec.AT_MOST);
mPrevButton.measure(buttonWidthSpec, buttonHeightSpec);
mNextButton.measure(buttonWidthSpec, buttonHeightSpec);
}
private static boolean shouldHandleMeasuredWidthTooSmall(View view, PercentLayoutInfo info) {
int state = ViewCompat.getMeasuredWidthAndState(view) & ViewCompat.MEASURED_STATE_MASK;
if (info == null || info.widthPercent == null || info.mPreservedParams == null || state != 16777216 || info.widthPercent.percent < 0.0f || info.mPreservedParams.width != -2) {
return false;
}
return true;
}
private static boolean shouldHandleMeasuredWidthTooSmall(View view, PercentLayoutInfo info)
{
int state = ViewCompat.getMeasuredWidthAndState(view) & ViewCompat.MEASURED_STATE_MASK;
if (info == null || info.widthPercent == null)
{
return false;
}
return state == ViewCompat.MEASURED_STATE_TOO_SMALL && info.widthPercent.percent >= 0 &&
info.mPreservedParams.width == ViewGroup.LayoutParams.WRAP_CONTENT;
}
private static boolean shouldHandleMeasuredWidthTooSmall(View view, PercentLayoutInfo info) {
int state = ViewCompat.getMeasuredWidthAndState(view) & ViewCompat.MEASURED_STATE_MASK;
return state == ViewCompat.MEASURED_STATE_TOO_SMALL && info.widthPercent >= 0 &&
info.mPreservedParams.width == ViewGroup.LayoutParams.WRAP_CONTENT;
}