膨胀 xml 文件或在循环中创建新的 View 实例?

发布于 2024-11-19 13:23:49 字数 600 浏览 3 评论 0原文

我正在创建一个 screen/xml,其中包含:

  1. TextView (标题)
  2. LinearLayout (包含大量relativelayout 的占位符)

我需要添加许多 RelativeLayout (包含两个 TextViews) 到循环中的 LinearLayout (上面提到的)。这基本上是 RelativeLayouts 列表。我有两种方法可以做到这一点:

  1. 创建一个 xml 文件,其中包含 RelativeLayout (以及其下的两个 TextViews)。在代码中一次又一次地膨胀它(在循环中)。然后将其添加到上面提到的 LinearLayout 中。
  2. 使用关键字“new”创建 RelativeLayoutTextView 的实例。并将实例添加到上面提到的LinearLayout中。

这是最便宜的方式。

I am creating a screen/xml which has:

  1. TextView (Header)
  2. LinearLayout (placeholder to contain numerous RelativeLayouts)

I need to add many RelativeLayout (containing two TextViews) to the LinearLayout (mentioned above) in loop. This basically would be list of RelativeLayouts. I have two ways doing this:

  1. Create an xml file which has the RelativeLayout (and two TextViews under it). Inflate this in the code again and again( in loop).And then add this to LinearLayout mentioned above.
  2. Create the instance of RelativeLayout and TextView using the keyword "new". And add the instances to the above mentioned LinearLayout.

Which is the least expensive way.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

财迷小姐 2024-11-26 13:23:49

您应该采用#1 方法 - 从 xml 文件膨胀布局。这是因为最好将代码与 UI 分开。您可以使用 ADT 工具更轻松地预览和重新设计您的 xml,您可以稍后出于类似目的重用此 xml,等等。

虽然创建 UI 的代码难以阅读和维护,并且仅使用代码很难设计出合适的 UI。

一般来说,最好在 xml/资源中保留尽可能多的 UI 相关内容。当更容易使用代码(例如创建 10 个具有相同文本的按钮)或唯一的方法(例如动态生成一些视图)时,可以回退到代码。

You should go with #1 approach - inflate layout from xml file. That's because its better to keep your code separate from your UI. You can preview and redesign your xml much easier using ADT tools, you can reuse this xml later for similar purposes and so on.

While code that creates UI is hard to read and hard to maintain, and its hard to design a proper UI using code only.

In general, its better to keep as much UI related stuff in xmls/resources. And fall back to code when its easier to use code (like creating 10 buttons with same text) or the only way to go (like dynamically generating some views).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文