Hy,我是Android開發應用程序的新手,我想用tabLayout創建一個使用視圖尋呼機的應用程序。我也有一個包含列表的片段,我想創建這個片段每個頁面上都有不同的數據,具體取決於所選的標籤。我幾乎實現了這一點,但我在viewPager頁面創建時遇到了問題。我ViewPagerAdapter extemds FragmentStatePagerAdapter,它看起來像這樣:ViewPager幻燈片正在跳過第一個和最後一個片段
public class ViewPagerAdapter extends FragmentStatePagerAdapter{
static final int NUM_ITEMS = 7;
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Log.e("new instance",position+"");
Fragment fragment=null;
switch (position)
{
case 0: fragment=new ChannelListFragment();
Log.e("new instance ",position+"");
break;
case 1: fragment= new ChannelListFragment();
Log.e("new instance ",position+"");
break;
case 2: fragment=new ChannelListFragment();
Log.e("new instance ",position+"");
break;
case 3: fragment=new ChannelListFragment();
Log.e("new instance ",position+"");
break;
case 4: fragment=new ChannelListFragment();
Log.e("new instance ",position+"");
break;
case 5: fragment=new ChannelListFragment();
Log.e("new instance ",position+"");
break;
case 6: fragment=new ChannelListFragment();
Log.e("new instance ",position+"");
break;
}
return fragment;
}
@Override
public int getCount() {
return NUM_ITEMS;
}
}
在我的MainActivity我這樣做:
viewPager = (ViewPager) findViewById(R.id.pager);
final ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
問題上刷卡網頁:在活動第一次創建,在日誌中我看到爲第一個頁面創建位置0和位置1,然後爲第二個標籤創建位置2,爲第三個標籤創建位置3,爲第六個標籤創建位置3,爲最後一個創建位置4。在回滾時,創建4,3,2,1,0,第一個片段沒有任何內容。這會在根據選定選項卡設置數據時影響應用程序的功能。 你能否幫我解決這個問題,讓尋呼機在頁面上創建一個片段,包括項目0和項目6,最後一個?
可能重複的[刷新ViewPager片段中的數據](http://stackoverflow.com/questions/36503779/refresh-data-in-viewpager-fragment)基本上,ViewPager保持當前片段和片段在任一側活着以保持快速滑動。如果您在加載時需要在每個片段中執行某些操作,請使用鏈接答案中描述的方法。 –