0
我将Jake Wharton的TabPageIndicator与ViewPager一起使用。每个选项卡都是从SherlockFragment扩展而来的片段。在一个片段中,单击项目时,我想用另一个片段替换当前片段。在视觉上,当前片段消失,没有抛出异常,但我得到一个空的空间,新的片段应该在那里。我使用,以取代片段
代码是:将SherlockFragment替换为另一个
SherlockFragment frag = new AboutFragment();
getSherlockActivity().getSupportFragmentManager()
.beginTransaction().setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
.replace(R.id.pager_content, frag, "dialogAbout")
.hide(this)
.addToBackStack(null)
.commit();
什么是替代这种正确的方法是什么?
我main_activity XML如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<com.viewpagerindicator.TabPageIndicator
android:id="@+id/indicator"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:background="#000000" />
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1">
<FrameLayout android:id="@+id/pager_content"
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</android.support.v4.view.ViewPager>
</LinearLayout>
,并在我的MainActivity我树立了一个适配器viewPager。转接器FragmentPagerAdapter延伸,看起来像如下:
我不明白这里是 - 在containter从连接器返回的片段放在哪里?我没有具体通知放置在哪里,我只是简单说明哪个片段应放在哪个位置。这可能是替换失败的原因吗?
但我想在同一个选项卡中切换片段。我想留在同一个项目,即。 TabIndicator不应该被移动 – Maggie
我认为最好的方法是在你的Fragment中加载一个'FrameLayout',然后在其中加载原始的Fragment。当你想改变Fragment时,从那个'FrameLayout'''''''''''分离'片段'并且'在'''附加''附加'另一个片段。您不应该手动删除/添加ViewPager正在管理的片段。 –