先把布局写好 然后建一个 自定义控件
名字随便起。
在自定义 控件 里 继承一个 viewgroup
重写它的三个方法
public class Liushi extends ViewGroup {
public Liushi(Context context) {
super(context);
}
public Liushi(Context context, AttributeSet attrs) {
super(context, attrs);
}
public Liushi(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
再写一个onMeasure测量
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
measureChildren(widthMeasureSpec , heightMeasureSpec);
}
再写个onLayout布局
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
int width = getWidth();
int row = 0;
int diswidth = 18;
for (int o = 0; o < getChildCount(); o++){
View view = getChildAt(o);
int measuredHeight = view.getMeasuredHeight();
int measuredWidth = view.getMeasuredWidth();
if (diswidth + measuredHeight > width){
row ++ ;
diswidth = 18;
}
view.layout(diswidth,row * measuredHeight , measuredWidth + diswidth , measuredHeight * (row+1));
diswidth += measuredWidth;
}
}
写完之后再在activity页面写
先在上面定义个 TextView 控件
下面是把搜索框的内容放上流失布局
btn_find.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textView = new TextView(getActivity());
String s = editText.getText().toString().trim();
textView.setText(s+" ");
ViewGroup.MarginLayoutParams marginLayoutParams = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
liushi.addView(textView,marginLayoutParams);
}
});