9

Sporządzam aplikację rozkładową dla i używam fragmentu jako ViewPagerIndicator. Ale teraz mam problem, chcę ustawić TabPageIndicator w centrum. W ten sposób: ExampleViewPagerIndicator - Ustaw narzędzie TabPageIndicator na centrum.

I chciałbym ustawić indywidualną szerokość i wysokość zakładki. I ustaw tę kartę na losowanie, które obsługuje wybrane/naciśnięte stany.

Nie znalazłem jeszcze rozwiązania tych problemów. Próbowałem coś z onPageSelected i ContextThemeWrapper, ale to nie działa. (Może nie używam go poprawnie).

Czy to wszystko można zrobić, czy powinienem spojrzeć na coś innego niż ViewPagerIndicator? (Inna opcja bez ViewPagerIndicator również jest mile widziana).

Aplikacja na zdjęciu to Untis Mobile i można ją znaleźć w PlayStore. Już pytam twórców, jak to robią, ale powiedzieli, że aplikacja nie jest open source. (Ale znalazłem w źródle, które robią to z TwoDScrollView, ale nie jestem pewien)

Edit:

Tytułujący jest ustalona z vpiTabPageIndicatorStyle. (Przy pomocy programistów XDA!)

Kiedy dodaję 20 przedmiotów, pozostaje na środku, ale tylko od pozycji 4 do pozycji 17, pozycja 1, 2, 3, 18, 19, 20 nie znajduje się pośrodku. Zobacz:

Wrong

mogę dodać 3 pustych elementów (lub pustą przestrzeń), aby upewnić się, że pierwsze i ostatnie elementy są w środku? Coś jak to (z aplikacji Untis komórkowej):

Good

(ja już próbowałem android:paddingLeft w vpiTabPageIndicatorStyle ale to nie działa)

wiem, że viewPager.setCurrentItem(total/2) ustawi TabPageIndicator w środku, ale potem pozostaje na środku i nie jestem w stanie wybrać innego dnia (nazywam to w onPageScrolled). Więc podczas przewijania chcę, aby wybrany był pośrodku. czy to możliwe?

Odpowiedz

6

Widżet, którego szukasz, jest podobny do poziomego koła androida. Istnieje implementacja pod numerem android-spinnerwheel, która może być tym, czego potrzebujesz.

enter image description here

2

Wtedy nie trzeba się viewpagerindicator. Użyj poziomego widoku przewijania, tak jak sugerował to Amulya Khare w twojej aktywności i zamieniaj fragmenty, gdy pojawi się przewijanie.

Twój układ aktywność może być tak:

<LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

     <SomeWheelView 
      android:layout_height="wrap_content" 
      android:layout_width="match_parent" 
      /> 
     <SomeStaticIndicatorView 
      android:layout_height="wrap_content" 
      android:layout_width="match_parent" 
      /> 
     <FrameLayout 
      android:layout_height="match_parent" 
      android:layout_width="match_parent" 
      /> 
</LinearLayout> 

Ustaw słuchacza wheelview i kiedy nastąpi zmiana może umieścić swoje fragmenty w framelayout w swojej działalności.

-1

używać go tak:

TabPagerIndicator tbi; 
    ViewPager pager; 

w onCreate() zrobić jak ten

tbi=(TabPagerIndicator)findViewById(R.id.something); 
    tbi.setViewPager(pager); 

Mam nadzieję, że będzie pracować dla ciebie. : D