android - 更改要在 ViewPagerIndicator 中显示的初始页面

标签 android android-viewpager

我已经用 ActionBarSherlock 实现了 ViewPagerIndicator。

现在我想在创建 viewpager 后在 viewpager 中打开一个特定的 fragment 。通常你应该使用 setCurrentItem(pageid) 或 setViewPager(mPager, pageid);

但这不起作用:(如果我想在 viewpager 中打开 fragment 2,则 viewpager 指示器显示 fragment 2 已显示,但实际上 fragment 1(标准)显示在 viewpager 中。

我有以下代码:

 @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);
        }
    }

你能告诉我应该用什么方法来改变初始页面吗? 谢谢!

最佳答案

我认为这是 setCurrentItem() 引起的错误 https://github.com/JakeWharton/Android-ViewPagerIndicator/pull/76

解决了^^

关于android - 更改要在 ViewPagerIndicator 中显示的初始页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9803613/

相关文章:

java - 当用户可见时更新 View 寻呼机上的 fragment

android - 替换 Android ViewPager 中的当前 Fragment

android - 在 android Mapview 中工作的缩放事件

android - 将屏幕录制到视频 libgdx android

android - OpenCv 和 Android studio 1.3+ 使用新的 gradle - undefined reference

android ViewPager 重新加载后在错误的随机位置启动

android - 从 Android 上的 native 进程获取数据

android - 在 Android 中遇到日语字符 "〜"的问题

crash - 滑动过去的最后一个选项卡应用程序崩溃

android - AdMob:是否允许将 Visibility(GONE) 设置为特定 View 的横幅?