zoukankan      html  css  js  c++  java
  • ScrollView的fillViewPort属性

    ScrollView嵌套Relative时候会发生问题,RelativeLayout不会充满ScrollView,即使设置match_parent属性也不行

    这个时候就需要fillViewPort属性登场了,在ScrollView的源码的onMeasure中,专门针对这个属性做了特殊的处理

    
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    
        if (!mFillViewport) {
            return;
        }
    
        final int heightMode = MeasureSpec.getMode(heightMeasureSpec);
        if (heightMode == MeasureSpec.UNSPECIFIED) {
            return;
        }
    
        if (getChildCount() > 0) {
            final View child = getChildAt(0);
            final int widthPadding;
            final int heightPadding;
            final int targetSdkVersion = getContext().getApplicationInfo().targetSdkVersion;
            final FrameLayout.LayoutParams lp = (LayoutParams) child.getLayoutParams();
            if (targetSdkVersion >= VERSION_CODES.M) {
                widthPadding = mPaddingLeft + mPaddingRight + lp.leftMargin + lp.rightMargin;
                heightPadding = mPaddingTop + mPaddingBottom + lp.topMargin + lp.bottomMargin;
            } else {
                widthPadding = mPaddingLeft + mPaddingRight;
                heightPadding = mPaddingTop + mPaddingBottom;
            }
    
            final int desiredHeight = getMeasuredHeight() - heightPadding;
            if (child.getMeasuredHeight() < desiredHeight) {
                final int childWidthMeasureSpec = getChildMeasureSpec(
                        widthMeasureSpec, widthPadding, lp.width);
                final int childHeightMeasureSpec = MeasureSpec.makeMeasureSpec(
                        desiredHeight, MeasureSpec.EXACTLY);
                child.measure(childWidthMeasureSpec, childHeightMeasureSpec);
            }
        }
    }
    
  • 相关阅读:
    框架-.NET:ASP.NET Core
    框架-.NET:.NET Core
    框架-.NET:ASP.NET MVC
    框架-.Net:.NET框架
    资源-网址:网址杂项
    Webx.0-Web4.0:Web4.0
    第十一节,命名空间namespace
    UVA 1453
    IOS学习笔记44--ASIRequestHttp之BUG(一)
    poj 2391 (Floyd+最大流+二分)
  • 原文地址:https://www.cnblogs.com/yueyanglou/p/6286823.html
Copyright © 2011-2022 走看看