/*******流失布局********/
@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); measureChildren(widthMeasureSpec,heightMeasureSpec); final int widthSize = MeasureSpec.getSize(widthMeasureSpec); final int heightSize = MeasureSpec.getSize(heightMeasureSpec); setMeasuredDimension(widthSize,heightSize); } @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { int lineWidth=0; int totalHeight=0; View childView; int childWidth=0; int childHeight=0; for (int i = 0; i < getChildCount(); i++) { childView=getChildAt(i); childWidth=childView.getMeasuredWidth(); childHeight=childView.getMeasuredHeight(); if (childWidth+lineWidth>getMeasuredWidth()){ totalHeight+=childHeight; lineWidth=0; childViewLayout(childView,lineWidth,totalHeight,lineWidth+childWidth,totalHeight+childHeight); lineWidth=childWidth; }else{ childViewLayout(childView,lineWidth,totalHeight,lineWidth+childWidth,totalHeight+childHeight); lineWidth+=childWidth; } } } public void childViewLayout(View childView,int l,int t,int r,int b){ childView.layout(l,t,r,b); }
/***********梯形布局************/
@Override protected void onLayout(boolean changed, int l, int t, int r, int b) { int lineWidth = 0; int lineHeight = 0; int totalHeight = 0; View childView; int childWidth = 0; int childHeight = 0; for (int i = 0; i <getChildCount() ; i++) { childView=getChildAt(i); childWidth=widthSize/2; childHeight=childView.getMeasuredHeight(); if (i%2==0){ totalHeight+=childHeight; lineWidth=0; childView.layout(lineWidth,totalHeight,lineWidth+childWidth,totalHeight+childHeight); }else{ totalHeight+=childHeight; lineWidth=childWidth; childView.layout(lineWidth,totalHeight,lineWidth+childWidth,totalHeight+childHeight); } }
}
/***************输入框添加*************/
final String main = editText.getText().toString().trim(); if (TextUtils.isEmpty(main)){ return; }else{ final TextView textView = new TextView(getApplicationContext()); textView.setText(main); textView.setTextColor(Color.BLACK); textView.setPadding(10,10,10,10); mflow.addView(textView); }