Copy Code code as follows:
Package com.test.mytest.widget;
Import java.util.List;
Import Android.content.Context;
Import Android.os.Handler;
Import Android.util.AttributeSet;
Import Android.widget.LinearLayout;
Import Android.widget.TextView;
public class Mutiplelabellayout extends LinearLayout {
Public Mutiplelabellayout (context context, AttributeSet Attrs) {
Super (context, attrs);
}
Public Mutiplelabellayout {
Super (context);
}
Public Mutiplelabellayout (context context, list<string> List) {
Super (context);
mlist = list;
Mcontext = context;
}
@Override
protected void Onattachedtowindow () {
Super.onattachedtowindow ();
New Handler (). postdelayed (New Runnable () {
@Override
public void Run () {
Init ();
}
}, 500);
}
private void init () {
This.setorientation (linearlayout.vertical);
LinearLayout row = new LinearLayout (mcontext);
Row.setorientation (linearlayout.horizontal);
This.addview (row);
int rowwidth = This.getmeasuredwidth ();
int viewsumwidth = 0;
for (String label:mlist) {
TextView Labelview = new TextView (mcontext);
Labelview.settext (label);
Labelview.setpadding (10, 0, 10, 0);
Labelview.setlayoutparams (New Layoutparams (
Layoutparams.wrap_content, layoutparams.wrap_content));
Row.addview (Labelview);
Labelview.measure (0, 0);
Viewsumwidth + + labelview.getmeasuredwidth ();
if (Viewsumwidth > Rowwidth) {
Row.removeview (Labelview);
row = new LinearLayout (mcontext);
Row.setorientation (linearlayout.horizontal);
This.addview (row);
Row.addview (Labelview);
Labelview.measure (0, 0);
Viewsumwidth = Labelview.getmeasuredwidth ();
}
System.out.println ("Viewsumwidth:" + viewsumwidth);
System.out.println ("Rowwidth:" + rowwidth);
}
}
Private list<string> mlist;
Private context Mcontext;
}