Кнопки для прокрутки ViewPager

412
20 февраля 2017, 13:18

Есть ViewPager с 3 фрагментами, которые должны скроллиться по нажатию на кнопки – влево и вправо. Я хочу, чтобы на Фрагменте1 кнопка "влево" не показывалась, на Фрагменте2 показывались все кнопки, а на Фрагменте три не показывалась кнопка "вправо".

До этого, я делал тоже самое, только для 2 фрагментов:

    final Button button2 = (Button) findViewById(R.id.button2);
    final Button button = (Button) findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            viewPager.setCurrentItem(0, true);
            button.setVisibility(View.INVISIBLE);
            button2.setVisibility(View.VISIBLE);
        }
    });
    button2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            viewPager.setCurrentItem(1, true);
            button2.setVisibility(View.INVISIBLE);
            button.setVisibility(View.VISIBLE);
        }
    });

Но как сделать такое же условие, но только для 3 фрагментов?

Answer 1

Можно получить индекс текущего фрагмента во ViewPager с помощью

viewPager.getCurrentItem();

И количество элементов во ViewPager с помощью

viewPager.getAdapter().getCount()

Тогда можно обновить код, отвечающие за видимость кнопок следующим образом:

button2.setVisibility(viewPager.getCurrentItem() != 0? View.VISIBLE: View.INVISIBLE); //Кнопка, переключающая влево
button.setVisibility(viewPager.getCurrentItem() != viewPager.getAdapter().getCount() - 1? View.VISIBLE: View.INVISIBLE); //Кнопка, переключающая вправо
READ ALSO
JavaFX приложение есть много памяти

JavaFX приложение есть много памяти

Написал приложение на JavaFX которое через webengine парсит страницы, потом с помощью jsoup берутся значения элементов и выводятся в таблицуПроблема...

360
Как получить нужное значение из json

Как получить нужное значение из json

В java нужно инициализировать class значениями из One и Two или такими же из AAA

322
Почему вылетает NullPointerException при использовании do while?

Почему вылетает NullPointerException при использовании do while?

Задача сохранить в файл все ссылки в указанном URLВо время чтения через BufferedReader вылетает NullPointerException при использовании цикла do while в строке...

299
NumberFormatException при считывании чисел из файла

NumberFormatException при считывании чисел из файла

Есть текстовый файл, который содержит целые числа, каждое с новой строки:

326