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);
相关推荐
祖国的好青年1 小时前
VS Code 搭建 React Native 开发环境(Windows 实战指南)
android·windows·react native·react.js
黄林晴1 小时前
警惕!AGP 9.2 别只改版本号,R8 规则与构建链路全线收紧
android·gradle
小米渣的逆袭2 小时前
Android ADB 完全使用指南
android·adb
儿歌八万首2 小时前
Jetpack Compose Canvas 进阶:结合 animateFloatAsState 让自定义图形动起来
android·动画·compose
zhangphil3 小时前
Android Page 3 Flow读sql数据库媒体文件,Kotlin
android·kotlin
神探小白牙3 小时前
echarts,3d堆叠图
android·3d·echarts
李白的天不白3 小时前
如何项目发布到github上
android·vue.js
summerkissyou19873 小时前
Android-RTC、NTP 和 System Time(系统时间)
android
小书房3 小时前
Kotlin使用体验及理解1
android·开发语言·kotlin
撩得Android一次心动4 小时前
Android Navigation 组件全面讲解
android·jetpack·navigation