【发布时间】:2019-06-18 14:01:40
【问题描述】:
我是一名 iOS Swift 开发人员,正在学习制作 Android 应用程序。我想知道是否有一种等效的方法可以在 Android 中动态/以编程方式创建 UI 对象。在 iOS 中我可以简单地
let btn = UIButton() // Create a UI object
btn.frame = CGRect(x: 0, y: 0, width: 100, height: 100) // Set the frame of the object
btn.backgroundColor = UIColor.blue // Mess with the properties of the object
self.view.addSubview(btn) // Add it to a UIView
在 Android 中,我似乎总是需要对象的 XML 版本。另外我似乎无法轻松设置对象的框架?我真的很喜欢以编程方式执行此操作,因为我的 UI 非常复杂,而且我喜欢使用基于像素的精确计算进行定位。 Java中没有与此等效的东西吗?
【问题讨论】:
-
以编程方式执行 UI 并不是最好的想法,因为它显着增加了代码量,但可以做到,这里有一个简单的例子 stackoverflow.com/questions/3204852/…
-
有什么理由不想只使用 xml 布局?
-
我不同意这里。我认为在您的应用程序中以编程方式创建 UI 而不是使用 XML 有很多好处。一方面,不在不同布局中扩展 XML 会显着降低绘图/渲染性能。其次,在您的项目中没有 XML 可以大大减少您的 APK 或 App Bundle 大小。最后,能够封装可以操作这些程序化 UI 的逻辑使您的代码更加简洁和灵活。
标签: java android ios swift user-interface