Android 视图系统入门指南

1. View:界面的最小单位

  • 本质:屏幕上的一个矩形区域,能显示内容或接收触摸。
  • 比喻:就像乐高积木,是组成界面的最小单位。
  • 常见子类
    • TextView(文字积木)、Button(按钮积木)、ImageView(图片积木)。
  • 关键方法
    • setText()setBackgroundColor()setOnClickListener()
    • ******************************************************************************************
  1. ViewGroup:收纳盒和组织者
  • 本质:特殊的 View,能装下其他 View 和 ViewGroup,形成层级结构。
  • 比喻:就像乐高收纳盒,可以把积木按规则排列。
  • 常见子类
    • LinearLayout(排队收纳盒)、RelativeLayout(相对位置收纳盒)、ConstraintLayout(现代灵活收纳盒)。
  • 关键方法
    • addView()removeView()getChildAt()
    • *************************************************************************************

3. LayoutParams:摆放说明书

  • 本质:告诉 ViewGroup 如何摆放子 View 的 "规则"。
  • 比喻:就像乐高积木的拼搭说明书,指定积木的大小和位置。
  • 常见属性
    • width/height(大小)、gravity(对齐方式)、margin(边距)。
  • 注意
    • 不同 ViewGroup 有自己的 LayoutParams(如LinearLayout.LayoutParams
    • **************************************************************************************

4. MarginLayoutParams:带边距的豪华说明书

  • 本质LayoutParams的子类,增加了边距(margin)功能。
  • 比喻:普通说明书只能拼积木,豪华版还能指定积木之间的距离。
  • 关键属性
    • marginLeft/Top/Right/Bottom(四边边距)。
java 复制代码
// 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);
相关推荐
limuyang238 分钟前
PDF Viewer KMP(基于 chrome 的 PDFium 内核)
android·kotlin
心平气和量大福大4 小时前
android-控件-搜索框SearchView
android·gitee
2601_962177134 小时前
【MySQL篇】聚合查询,联合查询
android·java·mysql
壮哥_icon5 小时前
【Android】批量 VectorDrawable 动态分别修改 fillColor 和 strokeColor 的踩坑与终极解决方案
android
齐天qaq6 小时前
Android 系统 APK 分区与权限
android
心平气和量大福大6 小时前
android-控件-多选框CheckBox
android·gitee
pengyu8 小时前
【Kotlin 协程修仙录 · 大乘境 · 初阶】 | 跳出三界:协程在 KMP 与后端开发中的跨平台之道
android·kotlin
XiaoLeisj8 小时前
Android Memory Profiler:堆内存指标、内存抖动与泄漏定位
android·性能优化·内存抖动·内存泄露·memory profiler
未来猫咪花8 小时前
Everything is ViewModel:让状态管理回到对象世界
android·flutter·ios