2016-09-22 61 views
-1

我遵循以下instructions爲了獲得查看尋呼機的滑動標籤。如何在android中設置視圖分頁器的選項卡?

這裏是我的onCreate方法:

mViewPager.setAdapter(new NavigationPagerAdapter(getSupportFragmentManager())); 
mTabLayout.setupWithViewPager(mViewPager); 

這裏是我的導航尋呼機適配器:

public static class NavigationPagerAdapter extends FragmentPagerAdapter { 
    private static final int NUM_ITEMS = 3; 

    public NavigationPagerAdapter(FragmentManager fragmentManager) { 
     super(fragmentManager); 
    } 

    // Returns total number of pages 
    @Override 
    public int getCount() { 
     return NUM_ITEMS; 
    } 

    // Returns the fragment to display for that page 
    @Override 
    public Fragment getItem(int position) { 
     switch (position) { 
      case 0: // Fragment # 0 - This will show FirstFragment 
       return new FeedFragment(); 
      default: 
       return null; 
     } 
    } 

    // Returns the page title for the top indicator 
    @Override 
    public CharSequence getPageTitle(int position) { 
     return "Page " + position; 
    } 
} 

這裏是我的content_main.xml活動佈局:

<android.support.design.widget.TabLayout 
    android:id="@+id/navigation_sliding_tabs" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    app:tabMode="scrollable"/> 

<android.support.v4.view.ViewPager 
    android:id="@+id/navigation_pager" 
    android:layout_width="match_parent" 
    android:layout_height="0px" 
    android:layout_weight="1"/> 

這是運行代碼時出現錯誤:

java.lang.NullPointerException: Attempt to write to field 'android.support.v4.app.FragmentManagerImpl android.support.v4.app.Fragment.mFragmentManager' on a null object reference 

我不知道是否錯誤在於尋呼機適配器,但它似乎是片段管理器造成麻煩。

+1

'NUM_ITEMS = 3',但你在'的getItem返回'null'()'任何'position'了'0'。 –

+0

我想最好的方法是使用android studio並選擇選項卡式活動lol – creativecreatorormaybenot

+1

再次閱讀該鏈接。你在switch語句中錯過了case 1和2。這可以防止null –

回答

0

試試這個適配器

FeedFragment feedfragment; 
public NavigationPagerAdapter(FragmentManager fragmentManager) { 
    super(fragmentManager); 
    feedfragment=new FeedFragment(); 
} 

// Returns total number of pages 
@Override 
public int getCount() { 
    return NUM_ITEMS; 
} 

// Returns the fragment to display for that page 
@Override 
public Fragment getItem(int position) { 
Fragment fragment; 
    switch (position) { 
     case 0: // Fragment # 0 - This will show FirstFragment 
      fragment=feedfragment; 
      break; 
     return fragment; 

    } 
} 

// Returns the page title for the top indicator 
@Override 
public CharSequence getPageTitle(int position) { 
    return "Page " + position; 
} 
} 
+0

沒有區別。 @Muhib Pirani –

+0

@Tom Finet在getItem方法中添加「return fragment」 –

相關問題