安卓端/course_mgmt_app/src/net/common/android/ui/custom/FlowLayout.java

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

package net.common.android.ui.custom;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;

public class FlowLayout extends ViewGroup {  
   
    private int line_height;  
   
    public static class LayoutParams extends ViewGroup.LayoutParams {  
   
        public final int horizontal_spacing;  
        public final int vertical_spacing;  
   
        /** 
         * @param horizontal_spacing Pixels between items, horizontally 
         * @param vertical_spacing Pixels between items, vertically 
         */  
        public LayoutParams(int horizontal_spacing, int vertical_spacing) {  
            super(0, 0);  
            this.horizontal_spacing = horizontal_spacing;  
            this.vertical_spacing = vertical_spacing;  
        }  
    }  
   
    public FlowLayout(Context context) {  
        super(context);  
    }  
   
    public FlowLayout(Context context, AttributeSet attrs) {  
        super(context, attrs);  
    }  
   
    @Override  
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {  
        assert (MeasureSpec.getMode(widthMeasureSpec) != MeasureSpec.UNSPECIFIED);  
   
        final int width = MeasureSpec.getSize(widthMeasureSpec) - getPaddingLeft() - getPaddingRight();  
        int height = MeasureSpec.getSize(heightMeasureSpec) - getPaddingTop() - getPaddingBottom();  
        final int count = getChildCount();  
        int line_height = 0;  
   
        int xpos = getPaddingLeft();  
        int ypos = getPaddingTop();  
   
        int childHeightMeasureSpec;  
        if (MeasureSpec.getMode(heightMeasureSpec) == MeasureSpec.AT_MOST) {  
            childHeightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.AT_MOST);  
        } else {  
            childHeightMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);  
        }  
   
        for (int i = 0; i < count; i++) {  
            final View child = getChildAt(i);  
            if (child.getVisibility() != GONE) {  
                final LayoutParams lp = (LayoutParams) child.getLayoutParams();  
                child.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.AT_MOST), childHeightMeasureSpec);  
                final int childw = child.getMeasuredWidth();  
                line_height = Math.max(line_height, child.getMeasuredHeight() + lp.vertical_spacing);  
后面还有 59 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。