【问题标题】:Create a multi-pane layout with a FragmentActivity使用 FragmentActivity 创建多窗格布局
【发布时间】:2013-11-01 15:34:43
【问题描述】:

我想将我的应用转换为支持平板电脑等大屏幕的版本。我的应用程序由一个带有自定义 ListViewAdapter 的 ListView 组成,如果您选择列表中的一项,您将转到一个新的 FragmentActivity,它显示有关所选列表项的一些额外信息。在 FragmentActivity 我有一个包含 4 个不同片段的寻呼机,您可以在这些片段之间切换。

我想要的是,如果用户使用的是平板电脑,listview 和 FragmentActivity 彼此相邻,并且当用户从 listview 中选择不同的项目时,FragmentActivity 会得到更新。现在我在网上查看了这是如何工作的,我需要使用 Fragment,但找不到任何关于 FragmentActivities 的信息。

如何使它与 FragmentActivity 一起工作?

【问题讨论】:

  • 作为起点,您可以在 eclipse 或 android studio 中创建一个新项目,并使用模板进行多窗格布局,看看它是如何完成的。

标签: android listview android-fragments android-fragmentactivity


【解决方案1】:

正如 Marc C 所建议的那样,如果您创建一个新的 Android 应用程序,并且在新 Android 项目向导快结束时,您选择“主/详细信息流”在创建活动页面。 (注意:您需要选择 11 或更高版本的最低 SDK 版本,但我猜如果您的目标是平板电脑,那应该没问题)。

在您的新项目中,您将获得一个 DetailActivity.java – 这是一个 FragmentActivity,它代表应用程序的项目详细信息方面。内容全部来自一个 DummyContent 列表类,该类包含 DummyItem 对象,在 ListFragment onCreate 中创建(通过静态) - 此片段表示将在足够大的屏幕上显示在左侧的列表视图。

在平板电脑并排布局中,点击左侧列表中的项目会导致调用 ListActivity.onItemSelected - 这会创建显示详细内容的详细片段 - 您当前在寻呼机中的内容.在单窗格布局中,详细活动由意图启动,您也可以在 onItemSelected 中看到。

因此,您需要将 DetailActivity.onCreate 和 ListActivity.onItemSelected 中的 DetailFragment 类的实例化替换为来自寻呼机的当前片段的实例化。我想您可以调整和重用 ListFragment,而不是尝试在现有的 ListView 和适配器代码中进行探索,这取决于您在其中拥有什么以及您还有什么其他要求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-30
    • 1970-01-01
    • 2013-10-27
    • 2011-10-05
    • 1970-01-01
    相关资源
    最近更新 更多