2016-09-22 2 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', но вы возвращение' 'null' в GetItem()' для любого 'position' над '0'. –

+0

Я предполагаю, что лучший способ - использовать студию android и выбрать вкладку активности lol – creativecreatorormaybenot

+1

Прочтите эту ссылку еще раз. Вы пропустили случай 1 и 2 в инструкции переключателя. Это предотвращает ошибку –

ответ

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 –

Смежные вопросы