有没有其他的嵌套片段?

问题描述:

我周围的嵌套片段阅读应该是可以避免的,但我看不出如何做到以下几点(如here):有没有其他的嵌套片段?

我的工作有以下UI选项卡应用(android:minSdkVersion="12") :

enter image description here

搜索栏始终在这里,用户可以通过多种浏览菜单选项(“家”,“画廊” ......)。我的想法是使用带有包含搜索栏和FrameLayout的布局的BaseActivity,其中我将加载与用户导航选项对应的片段。

我的问题是,在'家'片段我有几个选项卡,我想实现相同的方式,即与包含选项卡栏和FrameLayout我将加载相应的片段,和这个导致嵌套的片段...

我知道,而不是BaseActivity我可以使用几个活动,并在每个布局中包括搜索栏,但它会使它显示和消失每次用户会改变活动...

编辑

我还需要一个固定页脚,所以我不能使用CommonsWare在他的答案中提出的操作栏。

有人可以帮忙吗?

有嵌套碎片!!!!!!!在新的支持库版本(支持库v4版本11)

你不能在BaseActivity布局中做标签栏吗? 然后在BaseActivity布局中将搜索栏,标签栏和片段框架。 如果您不想在某个片段中使用导航栏,则可以将可见性View.GONE设置为导航栏。

您可以使用ViewPager和FragmentPagerAdapter。 ViewPager允许用户在视图之间滑动或(在你的情况下)Fragments。要显示平板式控件,请使用ViewPagerIndicator

使用您所描述的,而不是加载FragmentFrameLayout的布局,这样的布局它充气:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <com.viewpagerindicator.TabPageIndicator 
     android:id="@+id/viewpagerIndicator" 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" /> 
    <android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" /> 

</LinearLayout> 

接下来,分配FragmentPagerAdapter您ViewPager,然后将加载您的片段。

也看看my answer here。它给出了一个更详细的例子。但请注意,它扩展了PagerAdapter,而不是您应该使用的FragmentPagerAdapter

我的想法是使用一个包含搜索栏和一个FrameLayout的布局的BaseActivity,其中我将加载与用户导航选项相对应的Fragment。

如果您使用单独的活动,而不是试图强制所有内容进入单个活动,那么您将不会结束嵌套片段。

+0

但与一些活动,我不能有一个固定的报头中的搜索框,对不对?我需要将其包含到每个活动的布局中,并且每次更改活动时都会重新加载它(即从UI的角度来看,它会消失并重新出现)。同样的事情,如果我为选项卡创建多个活动。 – jul 2012-03-16 13:37:41

+1

@jul:“但是有了几项活动,我无法将搜索框作为固定标题,对吗?” - 把它放在每个活动的顶部。更好的是,把它放在操作栏中。 “我需要将它包含到每个活动的布局中,并且每次我改变活动时它都会重新加载(即从UI的角度来看,它会消失并重新出现)” - 是的。 – CommonsWare 2012-03-16 13:45:24

+0

好吧,我要检查是否可以自定义操作栏,因为我想要我的搜索栏。我也需要一个固定的页脚,所以如果我可以有两个操作栏并且可以自定义,我会使用它。谢谢。 – jul 2012-03-16 13:52:42

好消息!!!!! android支持库版本11已经支持嵌套片段。 Support Package, revision 11 (November 2012)

变化为V4支持库:
       用户界面
               嵌套片段类增加支持。

如何实现嵌套的片段,从android developer

现在,您可以在里面嵌入片段的片段。这对于想要将动态和可重用UI组件放入本身为动态且可重用的UI组件的各种情况很有用。例如,如果您使用ViewPager创建左右滑动并占用大部分屏幕空间的片段,则现在可以将片段插入每个片段页面。

这里有一些关键的:getChildFragmentManager()getParentFragment()