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

相關問題