如何获取viewPager中选定的选项卡?

3

我使用viewpagerindicator库创建了一个ViewPager。该Activity继承自FragmentActivity,因此我无法确定当前选中的选项卡。我的适配器由以下代码提供。

 class GoogleMusicAdapter extends FragmentPagerAdapter implements IconPagerAdapter {
    public GoogleMusicAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {

        // add each fragment in the right place
        if(position == 0){
           // return TestFragment.newInstance(CONTENT[(position + 1) % CONTENT.length]);
            return StudentTaskFragment.newInstance();
        } else if(position == 1){

            return .PartyFragment.newInstance();

        }else {
            return .StudentTaskFragment.newInstance();                   
        }
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return CONTENT[position % CONTENT.length].toUpperCase();
    }

    @Override public int getIconResId(int index) {
        return ICONS[index];
    }

    @Override
    public int getCount() {
        return CONTENT.length;
    }
}
1个回答

4
mViewPager.getCurrentItem()

使用上述代码行获取当前打开选项卡的位置。如果您无法在视图页中找到此方法,则请更新您的支持库。

您还可以创建自己的侦听器,以获取所选选项卡的当前位置。

 /**
 * Get the current view position from the ViewPager by
 * extending SimpleOnPageChangeListener class and adding your method
 */
public class DetailOnPageChangeListener extends ViewPager.SimpleOnPageChangeListener {

    private int currentPage;

    @Override
    public void onPageSelected(int position) {
        currentPage = position;
    }

    public final int getCurrentPage() {
        return currentPage;
    }
}

我已经实现了监听器,我有页面编号,但问题在于一个XML被用作监听器来改变选项卡的图标和选择颜色,我能在已实现的监听器中做到吗? - zied

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接