简体   繁体   English

FragmentPagerAdapter.getItem(int)显示错误的片段

[英]FragmentPagerAdapter.getItem (int) shows wrong Fragment

My FragmentPagerAdapter carries the 3 pages of ViewPager.OffScreenPageLimit and always displays the last loaded page 我的FragmentPagerAdapter包含ViewPager.OffScreenPageLimit的3页,并始终显示最后加载的页面

I use ViewPager to display Fragments. 我使用ViewPager显示片段。

my ViewPager 我的ViewPager

private static final int MONTH_SIZE = 12;

            viewPager.setAdapter(new CalendarFragmentPagerAdapter(getChildFragmentManager()));
        viewPager.setCurrentItem(GregorianCalendar.getInstance().get(Calendar.MONTH));
        viewPager.setClickable(true);
        viewPager.setSaveEnabled(false);
        viewPager.setOffscreenPageLimit(1);

My FragmentPageAdapter: 我的FragmentPageAdapter:

    public class CalendarFragmentPagerAdapter extends FragmentPagerAdapter {

    /**
     * @param fm
     */
    public CalendarFragmentPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    /**
     */
    @Override
    public Fragment getItem(int pageRequest) {
        return new CalendarFragment(pageRequest);
    }

    /**
     */
    @Override
    public int getCount() {
        return MONTH_SIZE - 1;
    }

    /**
     */
    @Override
    public CharSequence getPageTitle(int position) {
        switch (position) {

        case 0:
            return getString(R.string.monthJanuary);

        case 1:
            return getString(R.string.monthFebruary);

        case 2:
            return getString(R.string.monthMarch);

        case 3:
            return getString(R.string.monthApril);

        case 4:
            return getString(R.string.monthMay);

        case 5:
            return getString(R.string.monthJune);

        case 6:
            return getString(R.string.monthJuly);

        case 7:
            return getString(R.string.monthAugust);

        case 8:
            return getString(R.string.monthSeptember);

        case 9:
            return getString(R.string.monthOctober);

        case 10:
            return getString(R.string.monthNovember);

        case 11:
            return getString(R.string.monthDecember);

        default:
            return "";
        }
    }

    /**
     * @hide
     */
    @Override
    public int getItemPosition(Object object) {
        return POSITION_NONE;
    }
}

My Fragment: 我的片段:

// Nothing especial
    List<CalendarEntry> events = getEvents(indexByCalendarFragmentPagerAdapter);

        listView = (ListView) view.findViewById(R.id.listView_calendar_screen);

        listView.setAdapter(new CalendarCustomAdapter(getActivity().getBaseContext(), events));

        listView.setClickable(true);

The error is eg displays in the month of May, the events of February 错误例如显示在5月,2月的事件中

Already tried several ways and could not solve the problem, can someone help me? 已经尝试了几种方法并且无法解决问题,有人可以帮助我吗?

simply change this code or function called getCount() to : 只需将以下代码或称为getCount()的函数更改为:

@Override
public int getCount() {
    return events.length;
}

I solved with my own PagerAdapter. 我用自己的PagerAdapter解决了。 I used the example code found on the blog Eilfa 我使用了在Eilfa博客上找到的示例代码

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 返回类型与FragmentPagerAdapter.getItem(int)不兼容 - The return type is incompatible with FragmentPagerAdapter.getItem(int) 返回类型与FragmentPagerAdapter.getItem(int)不兼容更多错误 - The return type is incompatible with FragmentPagerAdapter.getItem(int) More errors FragmentPagerAdapter Fragment getItem位置错误? - FragmentPagerAdapter Fragment getItem wrong position? getFragmentManager()。findFragmentByTag和FragmentPagerAdapter.getItem之间的区别 - Difference between getFragmentManager().findFragmentByTag and FragmentPagerAdapter.getItem FragmentPagerAdapter不在Fragment getItem(int index)处返回精确位置 - FragmentPagerAdapter is not returning exact position at Fragment getItem(int index) FragmentPagerAdapter getItem位置错误 - FragmentPagerAdapter getItem wrong position FragmentPagerAdapter 在数据更改后显示错误的片段 - FragmentPagerAdapter shows wrong fragment after data change GetItem(int)返回FragmentPagerAdapter中的Listfragment - GetItem(int) to return Listfragment in FragmentPagerAdapter 如何在fragmentPagerAdapter中调用getItem(int position)? - How to recall getItem(int position) in fragmentPagerAdapter? 在FragmentPagerAdapter上调用getItem()时,它返回一个空片段 - When calling getItem() on FragmentPagerAdapter it returns an empty fragment
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM