深入理解声明式范式与Jetpack Compose关键原则
1. 组件层次结构的局限性
在传统的组件式UI框架中,组件的层次结构存在一定的局限性。以按钮为例,通常按钮会显示文本,所以自然会想到扩展更通用的文本组件,Android就是这样做的。但如果应用需要一个没有文本、只显示图像的按钮,就可以使用 ImageButton ,其继承关系如下:
java.lang.Object
↳ android.view.View
↳ android.widget.ImageView
↳ android.widget.ImageButton
ImageButton 类扩展了 android.widget.ImageView ,这是合理的,因为该组件的目的就是只显示图像,就像 Button 显示文本一样。然而,如果我们想显示一个既包含文本又包含图像的按钮, ImageButton 和普通文本按钮的最近公共祖先就是 android.view.View ,它是Android UI元素层次结构的根。这就导致 Button 从 TextView 继承的所有内容, ImageButton 不能直接使用,反之亦然。
这是因为Java基于单继承,一个类只能扩展另一个类。如果 Button
超级会员免费看
订阅专栏 解锁全文
945

被折叠的 条评论
为什么被折叠?



