**
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));
}