2

我使用FragmentPagerAdapter和ViewPager显示两个片段。第一次打开片段时,都显示/工作正常。当我去其他活动或去这些2以外的另一个片段并返回时,什么也没有显示出来。这是代码。来自另一个片段/活动后的片段不显示

事件:

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.view.ViewPager; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

public class Events extends Fragment { 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.event, container, false); 
    // Get the ViewPager and set it's PagerAdapter so that it can display items 
    ViewPager viewPager = (ViewPager) rootView.findViewById(R.id.pager); 
    FragmentManager fm = getFragmentManager(); 
    viewPager.setAdapter(new MyFragmentPageAdapter(fm)); 

    // Give the SlidingTabLayout the ViewPager 
    SlidingTabLayout slidingTabLayout = (SlidingTabLayout) rootView.findViewById(R.id.tabs); 
    // Center the tabs in the layout 
    slidingTabLayout.setCustomTabColorizer(new SlidingTabLayout.TabColorizer() { 
     @Override 
     public int getIndicatorColor(int position) { 
      return getResources().getColor(R.color.ColorSecondary); 
     } 
    }); 
    slidingTabLayout.setDistributeEvenly(true); 
    slidingTabLayout.setViewPager(viewPager); 
    return rootView; 
    } 
} 

MYFramentAdapter.class:

import android.content.Context; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 


public class MyFragmentPageAdapter extends FragmentPagerAdapter{ 

final int PAGE_COUNT = 2; 
private String tabTitles[] = new String[] { "Upcoming", "Calendar" }; 
private Context context; 

    public MyFragmentPageAdapter(FragmentManager fm) { 
     super(fm); 

    } 
@Override 
public int getCount() { 
    return PAGE_COUNT; 
} 

@Override 
public Fragment getItem(int pos) { 
    switch(pos) { 

     case 0: return FragmentEvents.newInstance(0); 
     case 1: return FragmentCalendar.newInstance(1); 

     default: return null; 
    } 
} 

@Override 
public CharSequence getPageTitle(int position) { 
    // Generate title based on item position 
    return tabTitles[position]; 
} 

} 
+0

你试图使用嵌套片段? (片段在另一片段内) –

+0

没有。单独的片段。 2个选项卡中有2个片段。 –

+0

那么为什么事件片段中的ViewPager? –

回答

2

解决:

我不得不用户getChildFragmentManager()在ViewPager因为嵌套片段。

+0

谢谢!保存了我的一天。 – antonpp

相关问题