重复使用后的空片段

时间:2016-01-26 01:16:29

标签: android android-fragments

我有一个活动有两个按钮作为菜单,一个片段有一个viewpager。单击按钮后,将在活动中添加片段,此片段内的视图将根据单击的按钮而更改。以下是一个示例实现:

Fragment fragment;

@Override
protected void onCreate(Bundle savedInstanceState) {
  //..
}

@Override
public void onClick(View v) {
    if(v==button1){
        fragment = new Fragment1().newInstance(ArrayStringValues1, ArrayStringValues2);
        fragmentChanger();
    }else if(v==button2){
        fragment = new Fragment1().newInstance(ArrayStringValues3, ArrayStringValues4);
        fragmentChanger();
    }
}

public void fragmentChanger(){
    FragmentManager fm2 = getSupportFragmentManager();
    fragmentTransaction = fm2.beginTransaction();
    fragmentTransaction.replace(R.id.fragment_place, fragment);
    fragmentTransaction.commit();
}

如果我第一次单击按钮1或2,则片段及其内容正在成功显示,但是当我第二次单击按钮1或2时,片段的viewpager内容不显示任何内容。

2 个答案:

答案 0 :(得分:1)

这些线条没有意义(如提到的whitaay)

fragment = new Fragment1().newInstance(ArrayStringValues1, ArrayStringValues2);

fragment = new Fragment1().newInstance(ArrayStringValues3, ArrayStringValues4);

他们应该阅读:

fragment = Fragment1.newInstance(ArrayStringValues1, ArrayStringValues2);

fragment = Fragment1.newInstance(ArrayStringValues3, ArrayStringValues4);

您还应该显示“片段内部的片段”的代码,这可能需要getChildFragmentManager()

答案 1 :(得分:1)

我认为使用ViewPager适配器时会出现此错误     当你初始化适配器时,@ parameter getFragmentManager() - >使用getChildFragmentManager()