相关疑难解决方法(0)

不使用支持库的Android 4.0,4.1(<4.2)中嵌套片段的最佳实践

我正在为4.0和4.1平板电脑编写一个应用程序,我不想使用支持库(如果不需要),而只使用4.x api.

所以我的目标平台定义为:> = 4.0且<= 4.1

该应用程序具有多窗格布局(两个片段,左侧一个小片段,右侧一个内容片段)和一个带标签的操作栏.

与此类似:

在此输入图像描述

单击操作栏上的选项卡可更改"外部"片段,然后内部片段是具有两个嵌套片段的片段(1.左侧小片段,2.宽内容片段).

我现在想知道替换片段,特别是嵌套片段的最佳做法是什么.ViewPager是支持库的一部分,此类没有本机4.x替代方案.在我看来似乎是"弃用".- http://developer.android.com/reference/android/support/v4/view/ViewPager.html

然后我阅读了Android 4.2的发行说明ChildFragmentManager,这是一个不错的选择,但我的目标是4.0和4.1,所以这也不能使用.

ChildFragmentManager 仅适用于4.2

遗憾的是,即使在整个Android开发人员指南中,也没有任何好的示例显示没有支持库的片段使用的最佳实践; 尤其是关于嵌套片段的一切.

所以我想知道:如果不使用支持库及其附带的所有内容,是否根本不可能使用嵌套片段编写4.1应用程序?(需要使用FragmentActivity而不是Fragment等?) 或者什么是最佳实践?


我目前在开发中遇到的问题正是这个陈述:

Android支持库现在还支持嵌套片段,因此您可以在Android 1.6及更高版本上实现嵌套片段设计.

注意:当布局包含a时,您无法将布局扩展为片段<fragment>.仅在动态添加到片段时才支持嵌套片段.

因为我在XML中定义了嵌套片段,这显然会导致如下错误:

Caused by: java.lang.IllegalArgumentException: Binary XML file line #15: Duplicate id 0x7f090009, tag frgCustomerList, or parent id 0x7f090008 with another fragment for de.xyz.is.android.fragment.CustomerListFragment_
Run Code Online (Sandbox Code Playgroud)

目前,我为自己总结一下:即使在4.1上,当我甚至不想以2.x平台为目标时,如果没有支持库,则无法在屏幕截图中显示嵌套片段.

(这实际上可能更像是一个wiki条目而不是一个问题,但也许其他人之前已经管理过它).

更新:

一个有用的答案是:Fragment Inside Fragment

android android-fragments android-support-library android-nested-fragment

115
推荐指数
1
解决办法
7万
查看次数