ActionBar选项卡和ViewPager的多片段布局

时间:2013-11-02 15:47:36

标签: java android android-layout android-fragments tabs

我有一个使用ActionBar标签进行导航的应用程序。使用这些标签我在布局中使用FragmentPagerAdapter并带有ViewPager

我已在我的应用程序的主Activity中配置了这些。在那里,我为ViewPager添加了一个页面更改侦听器,并更改了有关位置的选项卡。当按下选项卡时,我也会反过来这样做。这一切都很好。

然后我有选项卡中的内容。它们都延伸Fragment类。第一个必须根据设备更改布局。在横向平板电脑(layout-sw600dp-land)上,我有一个包含两个片段的布局,而其他设备只有一个片段。这是由适当的文件夹中的两个布局文件完成的。

在这些smaler设备上,第二个片段用作对话框。

我不确定如何实现这一切。第一个片段包含一个包含各种任务的ListView。单击其中一个时,右侧片段将显示编辑窗口。在小型设备上,该片段不存在,因此需要作为Activity启动。目前,此编辑窗口为FragmentActivity

我该怎么做?我不确定它是否真的更难,但我认为片段中的片段让我感到困惑。

2 个答案:

答案 0 :(得分:2)

  

我不确定如何实现这一切。

这不应该太难。它在概念上是多窗格项目,但不是在使用适当片段的活动之间进行操作,而是使用嵌套片段。

您将在ViewPager中拥有一个主/包装片段,它将代表自适应页面,该页面将具有一个或两个嵌套片段,具体取决于当前配置(这些片段需要在运行时附加(嵌套片段的限制))。知道了当前的配置,你还需要通过开始一个新的活动来适当地处理选择/点击/触发事件(这是我从你的问题中理解的,但你在这里有点含糊不清)或者设置细节片段。相同的包装片段。

我做了一个与你的问题相关的小样本,你可以找到here。我希望是你想要的,当然要记住这是基本的东西。

答案 1 :(得分:0)

首先将编辑窗口从活动转换为碎片。

设置标签和移动设备的不同页面,如: 1.对于Tab - 设计页面,如左侧列表视图和右侧列表视图中的framelayout 2.对于设备 - 在一个页面中列出Listview并创建另一个用于编辑窗口的活动

现在,通过右侧使用布局文件夹,您可以为同一活动创建两个不同的页面。

现在您需要检查framlayout是否为null。如果为null,那么您的应用程序在手机中运行,这样您就可以在单击列表项时触发具有编辑窗口的下一个活动。如果不为null,那么在listview的右侧有framelayout,所以只需将编辑片段附加到framelayout即可。