Android 流式布局(修改版) 当达到两行,隐藏多余的

public class SearchLayout extends LinearLayout {
   

    private final int mParentWidth;
    private float textSize;
    private boolean textColor;
    private boolean background;
    private boolean isHide = true;

    public void setHide(boolean hide) {
   
        isHide = hide;
    }

    public SearchLayout(Context context, AttributeSet attrs) {
   
        super(context, attrs);
        //获取屏幕的宽度
        DisplayMetrics metrics = context.getResources().getDisplayMetrics();
        mParentWidth = metrics.widthPixels - dip2px(16f);
        //自定义属性
        TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.SearchLayout);
        background = array.getBoolean(R.styleable.SearchLayout_Sear_background,false);
        textColor = array.getBoolean(R.styleable.SearchLayout_Sear_textColor, false);
        textSize = array.getDimension(R.styleable.SearchLayout_Sear_textSize, 0);
        //方向为纵向
        setOrientation(VERTICAL);
    }

    //移除子控件
    public void removeView() {
   
        removeAllViews();
    }

    //流式布局
    public void setData(List<String> data) {
   
        if (data.isEmpty()){
   
            return;
        }
        //获取一个子布局
        LinearLayout linearLayout = getLinearLayout();
        for (int i = 0; i < data.size(); i++) {
   
            //标题
            final String name = data.get(i);
            //已存在的宽度
            int numBar = 0;
            //子控件的个数
            int count = linearLayout.getChildCount();
            for (int j = 0; j < count; j++) {
   
                //一个一个获取
                ThemeTextView textView = (ThemeTextView) linearLayout.getChildAt(j);
                //获取左外边距
                LayoutParams params = (LayoutParams) textView.getLayoutParams();
                int leftWidth = params.leftMargin;
                int rightWidth = params.rightMargin;
                //获取宽高
                textView.measure(getMeasuredWidth(), getMeasuredHeight());
                //计算已存在的宽度
                numBar += textView.getMeasuredWidth()+leftWidth+rightWidth;
            }
            //获取一个子控件
            ThemeTextView text = getText();
            //给每一个控件设置点击事件
            text.setOnClickListener(new OnClickListener
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值