Iam工作在一个页面上,我有三个按钮像标签一样工作,当点击其中一个按钮时,行为应该是下面的FrameLayout(片段容器)应该用预期的替换片段一。FragmentTransaction替换只能工作一次
在 的onCreate活性我有此方法的,所以容器示出了第一片段,(这工作正常):
ProductDetailInformacoesFragment infoFragment = new ProductDetailInformacoesFragment();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.product_detail_fragment_container, infoFragment);
然后我有一个switch语句即呼叫不同听众的按钮,所以显示正确的片段:
public void switchFragment(int fragmentPos)
{
switch (fragmentPos){
case 0:
ProductDetailInformacoesFragment infoFragment = new ProductDetailInformacoesFragment();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.product_detail_fragment_container, infoFragment);
ft.commit();
break;
case 1:
ProductDetailCaracteristicasFragment caracteristicasFragment = new ProductDetailCaracteristicasFragment();
FragmentTransaction ftt = getSupportFragmentManager().beginTransaction();
ftt.replace(R.id.product_detail_fragment_container, caracteristicasFragment);
ftt.commit();
break;
case 2:
ProductDetailAvaliacoesFragment avaliacoesFragment = new ProductDetailAvaliacoesFragment();
FragmentTransaction fttt = getSupportFragmentManager().beginTransaction();
fttt.replace(R.id.product_detail_fragment_container, avaliacoesFragment);
fttt.commit();
break;
default:
break;
}
}
XML:
<FrameLayout
android:id="@+id/product_detail_fragment_container"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/base_view"
android:background="@android:color/white"/>
问题是当我在其中一个选项卡单击,片段容器成为空(白)和所需的片段没有显示,无论我点击其中一个(甚至是一个已经示出)。 我在做什么错? - 我试过设置ft.addToBackStack(null)没有帮助。