在开发了几个应用程序之后,我知道很多人喜欢添加视图程序化盟友。
但是,所有的 XML 布局都可以动态转换为 Java 代码,这是真的吗?
使用 Java 代码生成布局的优缺点是什么?
在开发了几个应用程序之后,我知道很多人喜欢添加视图程序化盟友。
但是,所有的 XML 布局都可以动态转换为 Java 代码,这是真的吗?
使用 Java 代码生成布局的优缺点是什么?
您正在创建的布局 XML 正在运行时转换为 java 代码。所以你的问题的答案是肯定的。你可以做同样的事情,基本上从头开始用java代码创建你的所有布局。
如您所知,这种方法的明显降级是您将花费更多时间来获得与 XML 文件相同的结果。
因此,除非您必须为布局动态添加视图,否则我看不出您有理由使用 java 代码执行该过程。
但是所有的xml布局都可以动态转换为java代码吗?
是的
使用java代码生成布局的优缺点是什么?
根据文档,在 XML 中声明 UI 的优势在于,它使您能够更好地将应用程序的表示与控制其行为的代码分开。您的 UI 描述在您的应用程序代码之外,这意味着您可以修改或调整它,而无需修改源代码并重新编译。例如,您可以为不同的屏幕方向、不同的设备屏幕尺寸和不同的语言创建 XML 布局。此外,在 XML 中声明布局可以更轻松地可视化 UI 的结构,从而更容易调试问题。
来自Ed Burnette 的Hello Android:
用户界面可以使用以下两种方法之一进行设计:程序性和声明性。程序只是意味着在代码中。例如,在编写 Swing 应用程序时,您编写 Java 代码来创建和操作所有用户界面对象,例如 JFrame 和 JButton。因此,Swing 是程序化的。
另一方面,声明式设计不涉及任何代码。当您设计一个简单的网页时,您会使用 HTML,这是一种类似于 XML 的标记语言,它描述了您希望在页面上看到的内容,而不是您想要如何做。HTML 是声明性的。
Android 试图通过让您以任何一种风格创建用户界面来跨越程序世界和声明世界之间的鸿沟。您可以几乎完全使用 Java 代码,也可以几乎完全使用 XML 描述符。如果您查找任何 Android 用户界面组件的文档,您将看到 Java API 和相应的声明性 XML 属性都执行相同的操作。
你应该使用哪个?无论哪种方式都有效,但 Google 的建议是尽可能使用声明性 XML。XML 代码通常比相应的 Java 代码更短且更易于理解,并且在未来版本中更改的可能性较小。
您可以在 XML 中执行的几乎所有操作都可以通过编程方式完成。我认为在可绘制形状等方面变得非常困难。当我事先不知道我需要添加什么时,我只以编程方式进行布局。
示例:我不知道有些文章可以有 1-x 条描述。然后我以编程方式创建添加到布局的 TextView。