1

我正在从 iOS 切换到 Android,我想知道您如何在 Android 中重用视图配置。在 iOS 中,我通常会创建一个BaseViewController处理我的应用程序如何“主题化”的方法,并配置一些我希望随处可用且始终可用(或带有条件)的常见视图组件。然后我会子类BaseViewController化以满足我特定于视图的需求。这可能不是处理这类事情的理想方式,但它对我有用。

在 Android 中,我不确定我应该做什么。

似乎有更多选项可用于视图配置;我知道您可以像 iOS 一样,通过从 XML 布局文件膨胀或以编程方式创建视图来创建视图。我也知道,由于 Java 提供继承,您可以扩展Activity该类。所以我看到了一些路径:您可以创建一个base_view.xml文件并将其包含在未来的布局文件中,但由于某种原因,我认为这有点 hacky。您还可以创建该base_view.xml文件,在不可实现的BaseActivity类中使用它,并将其子类化为BaseActivity可实现和特定于活动的版本。或者,您可以在BaseActivity子类中以编程方式进行。我也隐约知道 Android 中的“主题”选项可能会简化其中的一些。

我几乎可以肯定我会以错误的方式解决这个问题,并且有成千上万的人不得不处理之前重新使用某些视图配置的问题,因此感谢所有帮助。

4

3 回答 3

1

您可能想要重复使用许多不同的东西。你没有像我们希望的那样具体。例如,这些只是您可能想要重复使用的一些东西:

  • 样式和主题:如果您只关心应用程序的外观,那么您只需创建一个主题并将其应用于整个应用程序。android:theme您可以通过在文件的应用程序标记中配置属性来做到这一点AndroidManifest.xml
  • 基本布局:您可能已经知道,android 应用程序通常使用 actionbar ui 模式。对于这类事情,您可以创建一个BaseActvitiy处理和配置操作栏的程序(查看 iosched 应用程序源代码)。但是,在这些情况下,我建议坚持使用ActionBarSherlock 之类的库,这将使事情变得更容易和更好。
  • 行为:例如,您希望在所有活动中都有一个搜索按钮,它所做的只是调用该startSearch方法。在这些情况下,鼓励继承。
  • UI 组件:例如,您想重用一些对话框。在这些情况下,以及大多数 OOP 情况下,鼓励组合而不是继承。您将了解到,在大多数情况下,您将需要传递您的活动参考(作为Context)。对于这种情况,一般来说,我强烈建议您坚持使用支持库,以便您可以使用 Fragments API;我知道一开始使用起来可能有些困难,但绝对值得付出努力。

如果您的需求更具体,请随时发表评论,以便我可以尝试建议如何进行。

于 2012-04-16T16:14:05.347 回答
0
  1. 我建议不要以编程方式设置布局。您几乎可以使用 xml 以声明方式执行任何操作(动画;平板电脑的特殊布局、纵向、横向不同的 dpi 等)阅读文档应该可以为您以后省去很多麻烦 :-)
  2. 您可以通过将它们包含在 include 标记中来重用布局 xml 文件。是一个很好的解释
  3. 如果您有不同活动的相同代码,通常您将活动子类化。如果两个活动有共同的观点,请参阅 2。)
  4. 另一方面,样式和主题用于更改特定视图的外观(样式),活动或应用程序中的所有视图(主题)。文档-

我希望这有帮助。

于 2012-04-16T16:19:17.140 回答
0

你在说什么样的视图配置?听起来你可能会让事情变得过于复杂,但也许不是——这取决于你想要实现的目标。您是否在此处查看了 Android 开发者网站上有关视图的各种教程?这可能有助于回答您的一些问题。

于 2012-04-16T16:07:53.940 回答