6

enter image description hereДинамически счетчик изменения PagerIndicator в ViewPager или PagerAdapter

Какой эффект я хочу, чтобы это:

  1. количество Bottom индикатора Круг должен составлять половину количества страниц, когда ширина страницы наполовину.

  2. Число индикаторов нижнего круга должно быть равным количеству страниц, когда ширина страницы заполнена.

также, есть еще один запрос:

  1. может я прокрутки две страницы в одном свитке, когда ширина страницы наполовину?
  2. и прокрутка только одной страницы в одном прокрутке, когда ширина страницы заполнена?

ширина страницы приобретается PagerAdapter # getPageWidth()

кто может дать идеальное решение для этого? без создания двух файлов макета или двух адаптеров?

Вот весь исходный код, который я разработал для достижения этой активности на основе GIF.

Вопрос Усовершенствование будет принято.

https://github.com/raghavsatyadev/DemoPort

+1

Я не понимаю, вы прокручиваете прокрутку? лево право? – Elltz

+0

есть прокрутка тоже. когда ширина равна половине, я хочу прокручивать две страницы одновременно (одним ударом) –

+0

Не могли бы вы ответить на мой вопрос. В половине режима ширины, если вы прокрутите вправо или влево, оба элемента будут меняться или нет только один из них изменилось бы ? Каково ваше желаемое поведение? –

ответ

1

На мой взгляд, лучшая практика в этом случае, чтобы связать вид [с] на вид группы в адаптере. В вашем адаптере вы должны создать линейный макет и добавить столько детей, сколько хотите.

public Object instantiateItem(ViewGroup container, int position) { 
    LinearLayout ll = new LinearLayout(context); 
    LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(0,MATCH_PART); 
    param.weight = 1.0f; 

    for (int i; i < getChildrenInPage() ; i++) { 
     MyView myView = View.inflate(context, R.layout.my_layout, null) 
     myView.bind(getDataForPosition(getChildrenInPage()*position + i)) 
     ll.add(myView, params)); 
    } 
} 
+0

человек, который вы просто великолепный. редактирование ответа в соответствии с моим кодом –