Есть 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 фрагментов?
Можно получить индекс текущего фрагмента во 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); //Кнопка, переключающая вправо
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости