Изменить начальную страницу, чтобы она отображалась в ViewPagerIndicator - PullRequest
3 голосов
/ 21 марта 2012

Я реализовал ViewPagerIndicator с помощью ActionBarSherlock.

Теперь я хотел бы открыть определенный фрагмент внутри окна просмотра, как только он создан.Обычно вы должны использовать setCurrentItem (pageid) или setViewPager (mPager, pageid);

Но это не работает :( Если я хочу открыть фрагмент 2 внутри viewpager, индикатор viewpager показывает, что фрагмент 2показано, но в действительности первый фрагмент (стандартный) отображается в окне просмотра.

У меня есть следующий код:

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.simple_tabs);

        mAdapter = new ColofonFragmentAdapter(getSupportFragmentManager());

        mPager = (ViewPager)findViewById(R.id.pager);
        mPager.setAdapter(mAdapter);
        mIndicator = (TabPageIndicator)findViewById(R.id.indicator);
        String page = "";
        page = getIntent().getStringExtra("page");
        int pageid = 0;
        if(page.equals("contact")) { pageid = 0; }
        else if(page.equals("colofon")) { pageid = 1; }
        else if(page.equals("disclaimer")) { pageid = 2; }      

        mIndicator.setViewPager(mPager, pageid); // Doesn't work...
            //mIndicator.setCurrentItem(pageid); // Doesn't work...
    }

class ColofonFragmentAdapter extends FragmentPagerAdapter implements TitleProvider {

        ArrayList<Fragment> fragments = new ArrayList<Fragment>();
        ArrayList<String> titels = new ArrayList<String>();

        public ColofonFragmentAdapter(FragmentManager fm) {
            super(fm);
            fragments.add(new LayoutFragment(R.layout.colofon_contactgegevens));
            titels.add("Contact");
            fragments.add(new LayoutFragment(R.layout.colofon_colofon));
            titels.add("Colofon");
            fragments.add(new LayoutFragment(R.layout.colofon_disclaimer));
            titels.add("Disclaimer");
        }


        @Override
        public Fragment getItem(int position) {
            return fragments.get(position);
        }

        @Override
        public int getCount() {
            return fragments.size();
        }

        @Override
        public String getTitle(int position) {
            return titels.get(position);
        }
    }

Можете ли вы сказать мне, какой метод я должен использовать, чтобы изменить начальныйстраница? Спасибо!

1 Ответ

0 голосов
/ 13 апреля 2012

Я думаю, что это была ошибка, вызванная setCurrentItem () https://github.com/JakeWharton/Android-ViewPagerIndicator/pull/76

Решено ^^

...