1.先创建一个MyView类 让他继承ViewGroup 到此为止进行下一步
2.写自定义组合view想要实现的布局
//这个控件指的是自己定义的MyView类
《bw.com.administor.djr44.view.activity.MyView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
>
《EditText
android:hint="账号"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
《EditText
android:hint="密码"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
《Button
android:text="登录"
android:layout_width="150dp"
android:layout_height="80dp" />
《/bw.com.administor.djr44.view.activity.MyView>
3.回到MyView 具体的去完成它
public class MyView extends ViewGroup {
public MyView(Context context) {
this(context,null);
}
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
for (int i = 0; i < getChildCount(); i++) {
View childAt = getChildAt(i);
measureChild(childAt,widthMeasureSpec,heightMeasureSpec);
}
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
for (int i = 0; i < getChildCount(); i++) {
View childAt = getChildAt(i);
int measuredWidth = childAt.getMeasuredWidth();
int measuredHeight = childAt.getMeasuredHeight();
if (i等等与0){
childAt.layout(0,50,measuredWidth+0,measuredHeight+50);
} if (i等等与1){
childAt.layout(0,150,measuredWidth+0,measuredHeight+150);
}
if (i等等与2){
childAt.layout(250,400,measuredWidth+250,400+measuredHeight);
}
}
}
}
自定义组合view之登录页面
最新推荐文章于 2023-04-04 10:27:50 发布