Замена фрагмента другим фрагментом вызывает у меня некоторые проблемы

Я создаю экраны смахивания с помощью ViewPager, где у меня есть два фрагмента для отображения с помощью свайпов внутри FragmentActivity. Пожалуйста, рассмотрите следующий код:

Fragment_One.java

  public class Fragment_One extends Fragment {

    private Button btnNext;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_one,null);
        btnNext = (Button) v.findViewById(R.id.btnNext);
        btnNext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Fragment fragment = new Fragment_Two();
                FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
                FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
                fragmentTransaction.replace(R.id.fragmentOne,fragment);
                fragmentTransaction.addToBackStack(null);
                fragmentTransaction.commit();
            }
        });
        return v;
    }
}

2.Fragment_Two.java

 public class Fragment_Two extends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_two,null);
    }
}

<сильный>3. PagerAdapter.java

 public class PagerAdapter extends FragmentPagerAdapter {

    List<Fragment> listFragments ;
    public PagerAdapter(FragmentManager fm,List<Fragment> listFragments) {
        super(fm);
        this.listFragments = listFragments;
    }

    @Override
    public Fragment getItem(int i) {
        return listFragments.get(i);
    }

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

4.MainActivity.java

 public class MainActivity extends FragmentActivity{
        private List<Fragment> listFragments;
        private ViewPager viewPager;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            viewPager = (ViewPager) findViewById(R.id.viewPager);

            Fragment_One fragment_one = new Fragment_One();
            Fragment_Two fragment_two = new Fragment_Two();

            listFragments = new ArrayList<>();
            listFragments.add(fragment_one);
            listFragments.add(fragment_two);

            PagerAdapter pagerAdapter = new PagerAdapter(getSupportFragmentManager(),listFragments);
            viewPager.setAdapter(pagerAdapter);

        }
    }

Вышеупомянутый код работает нормально при пролистывании экранов. Но я нажимаю кнопку «Далее», фрагмент заменяется другим, но отображается на том же экране. Я не могу решить проблему. Скриншот приведен ниже:

СкриншотОдин

СкриншотДва

Кнопка «Далее» должна работать так же, как мы проводим пальцем по экрану. Пожалуйста, помогите мне решить проблему.


person Deepak Rattan    schedule 14.02.2016    source источник


Ответы (1)


Не проще ли использовать:

.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) 
            {
                 viewPager .setCurrentItem(viewPage.getCurrentItem() + 1);

            });
person Amir Horev    schedule 14.02.2016
comment
Скажите, пожалуйста, как я могу использовать его при нажатии кнопки. - person Deepak Rattan; 14.02.2016
comment
Иногда это случается. В любом случае, спасибо за помощь, дружище. - person Deepak Rattan; 14.02.2016