章节摘要:组件是界面的砖。本章沿猜数字 App 的界面逐步升级这条线,解剖最常用的三组控件:文本双兄弟 TextView/EditText、选择类 Button/CheckBox/RadioButton、以及 ImageView/进度条/ScrollView。每一组都配完整 XML 与 Kotlin,讲清高频属性、易错点和选型判断。
App 的界面需求在生长:一开始只有一行标题(TextView);要接收猜测就得有输入框(EditText);要提交就得有按钮(Button);想加"简单/普通/困难"模式选择,就有了 RadioButton;猜错七次给个提示弹窗前要有进度条;再往后历史记录多到一屏放不下,ScrollView 登场。本章就按"显示文本 → 输入与选择 → 图像、进度与滚动"这条需求线推进,每个控件都是被一个具体需求逼出来的。
本章的关键认知拐点:EditText 继承自 TextView,Button 又继承自 TextView——Android 的控件是一棵继承树而不是一堆孤立工具。想懂一个控件的属性为什么长这样,往父类追一层往往就有答案。另一个落点是选型意识:显示用 TextView、输入用 EditText、互斥选择用 RadioGroup、多选用 CheckBox,用错容器(比如用多个 CheckBox 模拟单选)会平白多写状态同步代码。
三组控件的分工与继承关系:
砖备齐了,但一摞控件怎么排成有序的界面?第 4 章进入骨架部分:四种布局容器各自的排列规则、什么时候用谁,以及用 ConstraintLayout 把层级压扁的现代做法。
其一,控件 id 的命名纪律从本章就要立起来:tv_ 前缀配 TextView、et_ 配 EditText、btn_ 配 Button,三个字符换来的是后文 View Binding 里一眼可读的变量名。其二,每个控件都值得读一遍它的常用 XML 属性表,不是背下来,而是知道有哪些旋钮可拧——真遇到"文字太长被截断"这类问题时,你能想到去查 ellipsize 而不是自己写截断逻辑。其三,控件的选择题比填空题重要:需求是显示还是输入、单选还是多选、确定进度还是不确定进度,选对了控件,一半的代码就不用写了。本章的知识点清单可核对:配置 maxLines 与 ellipsize、设置 inputType 与 imeOptions、安全读取输入、RadioGroup 互斥监听、scaleType 按场景选型、ScrollView 单子 View 约束——六项逐条能过,基本组件课就毕业了。