我有一个活动有两个按钮作为菜单,一个片段有一个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内容不显示任何内容。
答案 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()