Android studio 简易流式布局

**

Android studio 简易流式布局
**

欢迎使用Android studio编辑器

你好! 这是你第一次使用 Android studio编辑器 所展示的欢迎页。如果你想学习如何使用Android studio编辑器, 可以仔细阅读这篇文章,了解一下Android studio的基本语法知识。

自定义View

package com.example.dome1.view;

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.example.dome1.R;

public class MyView extends ViewGroup{
private final Context mContext;

public MyView(Context context, AttributeSet attrs) {
    super(context, attrs);
    this.mContext = context;
}


@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
    //获取子控件
    int childCount = getChildCount();
    //初始化操作
    //间距
    int span=20;
    int top=0;
    int btoom=0;;
    int left=0;
    int right=0;
    //根据子控件循环
    for (int i=0;i<childCount;i++){
        //获取每个子控件
        View childAt = getChildAt(i);
        //测量子控件的宽高
        childAt.measure(0,0);
        //获取子控件的测量宽高
        int measuredWidth = childAt.getMeasuredWidth();
        int measuredHeight = childAt.getMeasuredHeight();
        left=right+span;
        right=left+measuredWidth;
        int width = getWidth();
       if (right>width){
           left=span;
           top=btoom+span;
       }
       right=left+measuredWidth;
       btoom=top+measuredHeight;
       childAt.layout(left,top,right,btoom);
    }



}
public void GetName(String name){
    TextView textView = new TextView(mContext);
    //设置文本的颜色
        textView.setTextColor(Color.RED);
    //设置文本的大小
    textView.setTextSize(20);
    //设置文本的内容
    textView.setText(name);
    //添加到视图上显示
    addView(textView);
}

}

Activity中引用
public class MainActivity extends BaseActivity {

private RecyclerView recy;
private EditText et_name;
private TextView bt_name;
private MyView myView;

@Override
protected void initData() {

    bt_name.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String name = et_name.getText().toString().trim();
            //进行判空
            if (name.isEmpty()){
                Toast.makeText(MainActivity.this, "内容不能为空", Toast.LENGTH_SHORT).show();

            }else {
                myView.GetName(name);
                mPresenter.onPresenter("http://172.17.8.100/small/commodity/v1/findCommodityByKeyword?keyword="+ URLEncoder.encode(name) +"&page=1&count=5");

            }

        }
    });
    recy.setLayoutManager(new StaggeredGridLayoutManager(2,RecyclerView.VERTICAL));

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值