Android 使用碎片重新设计平板电脑的手机应用程序

Android 使用碎片重新设计平板电脑的手机应用程序,android,android-listview,android-fragments,Android,Android Listview,Android Fragments,我有一个开发良好的手机应用程序,但我想增加对平板电脑的支持。主视图由一个ListView组成,该ListView使用SimpleCorsOrAdapter从数据库获取列表。当用户点击一个项目时,一个活动(特定于该ID!)启动。某些活动共享相同的视图,但具有不同的信息。每一个活动都扩展了碎片性。在平板电脑中,由于我有更多的屏幕不动产,我希望在左侧显示ListView,当用户点击某个项目时,特定的活动将显示在左侧。它将模仿在页面的一半处发现的图像。我对碎片没有很好的了解,但是我怎样才能做到这一点呢?

我有一个开发良好的手机应用程序,但我想增加对平板电脑的支持。主视图由一个ListView组成,该ListView使用SimpleCorsOrAdapter从数据库获取列表。当用户点击一个项目时,一个活动(特定于该ID!)启动。某些活动共享相同的视图,但具有不同的信息。每一个活动都扩展了碎片性。在平板电脑中,由于我有更多的屏幕不动产,我希望在左侧显示ListView,当用户点击某个项目时,特定的活动将显示在左侧。它将模仿在页面的一半处发现的图像。我对碎片没有很好的了解,但是我怎样才能做到这一点呢?如果你需要更多的信息,请告诉我

为了回答这个问题,我将使用“主要活动”来指带有
列表视图的活动,而使用“其他活动”来指您希望显示在右侧的活动

下面是一个缩略图:

  • 将其他每个活动转换为其UI由片段定义的活动

  • 为平板电脑的主要活动创建布局,除了包含
    ListFragment
    外,还包含一个
    FrameLayout
    容器,用于其他活动的位置。将主要活动的现有布局单独保留

  • 列表片段的
    onListItemClick()
    中,将事件传递给主活动(例如,
    ((MainActivity)getActivity())。heyDoSomething(position)

  • 在主活动中的事件处理方法(例如,
    heyDoSomething()
    )中,查看是否有
    FrameLayout
    。如果执行此操作,请运行
    FragmentTransaction
    ,将
    FrameLayout
    的内容替换为其他活动中的适当片段。如果您没有,那么您正在使用手机,在这种情况下,您将启动其他活动之一


  • 演示部分内容(减去几个“其他活动”,因此列表单击仅将新内容加载到右侧的现有片段中)。

    为了回答这个问题,我将使用“主要活动”来指带有
    列表视图的活动和“其他活动”指的是要显示在右侧的

    下面是一个缩略图:

  • 将其他每个活动转换为其UI由片段定义的活动

  • 为平板电脑的主要活动创建布局,除了包含
    ListFragment
    外,还包含一个
    FrameLayout
    容器,用于其他活动的位置。将主要活动的现有布局单独保留

  • 列表片段的
    onListItemClick()
    中,将事件传递给主活动(例如,
    ((MainActivity)getActivity())。heyDoSomething(position)

  • 在主活动中的事件处理方法(例如,
    heyDoSomething()
    )中,查看是否有
    FrameLayout
    。如果执行此操作,请运行
    FragmentTransaction
    ,将
    FrameLayout
    的内容替换为其他活动中的适当片段。如果您没有,那么您正在使用手机,在这种情况下,您将启动其他活动之一


  • 演示部分内容(减去几个“其他活动”,因此列表单击仅将新内容加载到右侧的现有片段中)。

    请看这里的莎士比亚示例:

    请看这里的莎士比亚示例:

    您链接的页面将准确地显示如何设置它。你有什么特别的问题吗?你试过什么?你链接的页面会告诉你如何设置它。你有什么特别的问题吗?您尝试了什么?问题是我没有一个通用的活动用于所有数据库条目。每个数据库条目都有一个单独的活动。问题是,我没有一个通用的活动用于所有数据库条目。我对每个数据库条目都有一个单独的活动。您的意思是转换我的每个其他活动,以便它们扩展步骤1中的片段吗?然后把我的主要活动转换成一个列表片段?@MohitDeshpande:嗯,我的意思和我写的差不多。您的UI可能是活动和小部件。您需要创建活动、片段和小部件,并使用片段管理小部件。基本上,您将当前业务逻辑的大部分(但不一定全部)从活动移动到片段,活动仍在那里,以显示片段。因此,我必须为每个活动创建一个片段,并在片段中管理活动的UI,并且仅将活动用作容器?@MohitDeshpande:你的问题相当于一本书中的28页,这使得这一切很难在有限的空间中总结。你的活动仍然有责任,协调它们之间的片段。一般来说,这些活动负责超越单个片段的任何事情:在片段之间发送事件,加载多个片段使用的数据,根据屏幕大小决定应该显示哪些片段以及显示多少片段,等等。对不起,片段并不是我的事。我仍然需要为我的每个“其他活动”创建一个片段,因为每个数据库条目都有一个唯一的活动,对吗?然后在片段内部,管理小部件,在父活动内部,管理所述片段。您的意思是转换我的每个其他活动,以便它们在步骤1中扩展片段吗?然后把我的主要活动转换成一个列表片段?@MohitDeshpande:嗯,我的意思和我写的差不多。您的UI可能是活动和小部件。你知道吗