1. View:界面的最小单位
- 本质:屏幕上的一个矩形区域,能显示内容或接收触摸。
- 比喻:就像乐高积木,是组成界面的最小单位。
- 常见子类:
TextView
(文字积木)、Button
(按钮积木)、ImageView
(图片积木)。
- 关键方法:
setText()
、setBackgroundColor()
、setOnClickListener()
。
- ******************************************************************************************
2. ViewGroup:收纳盒和组织者
- 本质:特殊的 View,能装下其他 View 和 ViewGroup,形成层级结构。
- 比喻:就像乐高收纳盒,可以把积木按规则排列。
- 常见子类:
LinearLayout
(排队收纳盒)、RelativeLayout
(相对位置收纳盒)、ConstraintLayout
(现代灵活收纳盒)。
- 关键方法:
addView()
、removeView()
、getChildAt()
。- *************************************************************************************
3. LayoutParams:摆放说明书
- 本质:告诉 ViewGroup 如何摆放子 View 的 "规则"。
- 比喻:就像乐高积木的拼搭说明书,指定积木的大小和位置。
- 常见属性:
width/height
(大小)、gravity
(对齐方式)、margin
(边距)。
- 注意:
- 不同 ViewGroup 有自己的 LayoutParams(如
LinearLayout.LayoutParams
) - 。
- **************************************************************************************
- 不同 ViewGroup 有自己的 LayoutParams(如
4. MarginLayoutParams:带边距的豪华说明书
- 本质:
LayoutParams
的子类,增加了边距(margin)功能。 - 比喻:普通说明书只能拼积木,豪华版还能指定积木之间的距离。
- 关键属性:
marginLeft/Top/Right/Bottom
(四边边距)。
// 1. 创建一个TextView(乐高积木)
TextView textView = new TextView(this);
textView.setText("Hello");// 2. 创建一个LinearLayout(收纳盒)
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);// 3. 给TextView设置摆放规则(说明书)
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, // 宽度:包裹内容LinearLayout.LayoutParams.WRAP_CONTENT // 高度:包裹内容
);
params.topMargin = 20; // 上边距20像素
textView.setLayoutParams(params);// 4. 将TextView放入LinearLayout(把积木放进收纳盒)
layout.addView(textView);// 5. 将LinearLayout添加到Activity(把收纳盒放到房间里)
setContentView(layout);