Fragment

时间:2016-01-02 01:55:27

标签: android android-fragments

我遇到SlidingTabLayout的问题。我想在ViewPager内部Fragment(片段放在其他片段中),只要我使用PagerTabStrip,它就可以正常工作。我想将其更改为SlidingTabLayout,但是有一些NullPointerException。我从谷歌的iosched应​​用程序中复制了SlidingTabLayout.java和SlidingTabStrip.java。

适配器:

public class ViewPagerAdapter extends FragmentStatePagerAdapter {
private static int NUM_ITEMS = 2;
public ViewPagerAdapter(FragmentManager fm) {
    super(fm);
}
@Override
public int getCount() {
    return NUM_ITEMS;
}
@Override
public Fragment getItem(int position) {
    switch (position) {
        case 0:
            return new BlankFragment();
        case 1:
            return new BlankFragment();
        default:
            return null;
    }
}
@Override
public CharSequence getPageTitle(int position) {
    switch (position) {
        case 0:
            return "Tab One";
        case 1:
            return "Tab Two";
    }
    return null;
}
}  

在onCreateView中是这样的:

 mAdapter = new ViewPagerAdapter(this.getFragmentManager());
    mViewPager = (ViewPager) fragmentView.findViewById(R.id.pager);
    mTabs = (SlidingTabLayout) fragmentView.findViewById(R.id.tabs);
    new setAdapterTask().execute();
    mTabs.setDistributeEvenly(true);
    mTabs.setViewPager(mViewPager);

我只是想知道为什么所有逻辑适用于PagerTabStrip但不适用于SlidingTabLayout。 NullPointerException出现在populateTabStrip()的SlidingTabLayout.java中,更准确地说是adapter.getCount()指令。任何人都可以帮我解决这个问题吗?

EDIT NullPointerException来自populateTabStrip()中的SlidingTabLayout.java,因为适配器为null。为什么它没有注意到我的适配器?

final PagerAdapter adapter = mViewPager.getAdapter(); // <-it is always null

0 个答案:

没有答案