0

我正在使用 Android Studio 的选项卡式活动。

我正在滑动页面之间移动,但我通过 onclick 方法添加了 2 个视图以移动下一个和上一个,但仅返回到下一个是行不通的。

     nextAbitudini.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        //it works
                        mViewPager.setCurrentItem(getArguments().getInt(ARG_SECTION_NUMBER));
                    }
                });

     backAbitudini.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                       //it doesn't work
                       mViewPager.setCurrentItem(getArguments().getInt(ARG_SECTION_NUMBER)-1);
                    }
                });

我正在使用 FragmentPagerAdapter。它可以向后滑动。

我将 onClick 方法放在 onCreateview 中。

4

1 回答 1

1

参考 Tabbed Activity,看一下片段初始化时的节号。(sectionNumber = 位置+1)。

    @Override
    public Fragment getItem(int position) {
        // getItem is called to instantiate the fragment for the given page.
        // Return a PlaceholderFragment (defined as a static inner class below).
        return PlaceholderFragment.newInstance(position + 1);
    }

因此,ARG_SECTION_NUMBER-1指的是当前片段的位置,ARG_SECTION_NUMBER-2指向上一个,ARG_SECTION_NUMBER指向下一个。

因此,您的代码应该是这样的:

 nextAbitudini.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    //it works
                    mViewPager.setCurrentItem(getArguments().getInt(ARG_SECTION_NUMBER));
                }
            });

 backAbitudini.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                   //it doesn't work
                   mViewPager.setCurrentItem(getArguments().getInt(ARG_SECTION_NUMBER)-2);
                }
            });
于 2016-10-14T13:30:18.060 回答