//自定义的类
public class MviewGroup extends ViewGroup {
public MviewGroup(Context context) { this(context,null); } public MviewGroup(Context context, AttributeSet attrs) { this(context, attrs,0); } public MviewGroup(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); measureChildren(widthMeasureSpec,heightMeasureSpec); } @Override protected void onLayout(boolean b, int i, int i1, int i2, int i3) { int width=getWidth(); int heigth=getHeight(); int tw=0; int th=0; for (int j = 0; j <getChildCount() ; j++) { View childAt = getChildAt(j); if (tw+childAt.getWidth()<width){ }else{ tw=0; th+=childAt.getMeasuredHeight(); } childAt.layout(tw,th,tw+childAt.getMeasuredWidth(),th+childAt.getMeasuredHeight()); tw+=childAt.getMeasuredWidth(); } }
}
布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:orientation="vertical" android:layout_height="match_parent" tools:context="com.example.zdm.MainActivity"> <com.example.zdm.MviewGroup android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/tit" android:layout_width="50dp" android:layout_height="50dp" /> <TextView android:text="sxc" android:layout_width="200dp" android:layout_height="50dp" /> <TextView android:text="sxc" android:layout_width="200dp" android:layout_height="50dp" /> <TextView android:text="sxc" android:layout_width="200dp" android:layout_height="50dp" /> <TextView android:text="sxc" android:layout_width="200dp" android:layout_height="50dp" /> <TextView android:text="sxc" android:layout_width="100dp" android:layout_height="50dp" /> <TextView android:layout_width="100dp" android:layout_height="100dp" /> </com.example.zdm.MviewGroup> </LinearLayout>
