【问题标题】:Android library interface and app-library boundaryAndroid 库接口和应用程序库边界
【发布时间】:2012-01-03 07:13:55
【问题描述】:

我有一个想要转换为 Android 库的 Android 应用程序。该应用程序基于一个活动,其整个 XML 布局仅包含一个覆盖整个屏幕的 web 视图。库 UI(实际上,只是 webview)现在必须集成到其他应用程序的布局中。例如,一个父应用程序具有选项卡结构。我希望将库 webview 显示在其中一个选项卡中,并且这些选项卡始终在屏幕底部可见。通常,我会选择在活动级别设置应用程序库边界,但这在这种情况下不起作用——我们不能从库中弹出一个新活动,因为这会覆盖所有屏幕和选项卡底部。

将其转换为库以使其在父应用的选项卡结构中工作的最佳方法是什么?应用程序库边界应该在哪里?我的一些想法是:

  1. 让库用户使用他喜欢的自定义布局(在本例中为选项卡)创建一个活动。确保布局包含 webview。使用 findViewById 获取 webview 对象并将该对象传递到库中,以便库用于显示页面。这里的主要缺点是库的某些部分需要将一些广播接收器连接到父 Activity(在这种情况下,这并不是库的一部分),而且这种耦合似乎相当可疑。

  2. 可能使用 Android 3.0 中引入的片段。然而,这些似乎主要面向平板电脑。这些在这种情况下会起作用吗?

  3. 还有其他我不知道的兼容 Android 2.1+ 的选项吗?

【问题讨论】:

    标签: android design-patterns android-layout android-library


    【解决方案1】:

    我决定使用 Fragments,使用兼容性库。

    http://developer.android.com/guide/topics/fundamentals/fragments.html
    http://developer.android.com/sdk/compatibility-library.html

    在这种情况下,片段确实是最佳选择,因为:

    1. 它们具有类似于活动的生命周期,使转换变得容易。
    2. 它们是具有相关功能的 UI 块,这正是本例所需要的。

    【讨论】:

      猜你喜欢
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      • 2012-02-11
      • 2012-03-06
      • 1970-01-01
      相关资源
      最近更新 更多