ViewPagerIndicator - Set the TabPageIndicator to the center
Asked Answered
L

3

8

I make an timetable application for and I'm using ViewPagerIndicator as fragment. But now I've a problem, I want to get the TabPageIndicator to the center. Like this: Example

And I would to like to set the individual tab width and height. And set that tab to a drawable that support selected/pressed states.

I've not found it yet to solve these problems. I've try something with onPageSelected and ContextThemeWrapper but that doesn't work. (Maybe I'm not using it correctly).

Is this all possible to make or should I look to something else than ViewPagerIndicator? (An other option without ViewPagerIndicator is also welcome).

The app on the image is Untis Mobile and can be found on the PlayStore. I've already ask the creators how they do it but they said the app isn't open source. (But I have found in the source that they do it with TwoDScrollView, but I'm not sure)

Edit:

The styling is fixed with vpiTabPageIndicatorStyle. (With help of XDA Developers!)

When I add 20 items it stays on the middle but only from item 4 to item 17, item 1, 2, 3, 18, 19, 20 are not in the middle. See:

Wrong

Can I add a 3 empty items (or empty space) to ensure that the first and last items are in the middle? Something like this (from the Untis Mobile app):

Good

(I've already tried android:paddingLeft in vpiTabPageIndicatorStyle but that doesn't work)

I know that viewPager.setCurrentItem(total/2) will set the TabPageIndicator in the middle but then it stays on the middle and I'm not able to select a other day (I call it in onPageScrolled). So I want as you scroll the selected one needs to be in the middle. Is this possible?

Lajuanalake answered 4/11, 2013 at 9:34 Comment(0)
D
5

The widget you are looking for is similar to the android horizontal wheel. There is an implementation at android-spinnerwheel which can be what you need.

enter image description here

Duplex answered 4/11, 2013 at 9:36 Comment(0)
N
2

Then you don't need an viewpagerindicator. Use a horizontal scroll view as Amulya Khare suggested in your activity and replace fragments when scrolling occurs.

Your activity layout could be like :

<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>

Set a listener to wheelview and when change occurs you can put your fragments in framelayout in your activity.

Nodab answered 11/11, 2013 at 9:37 Comment(0)
C
-1

Use it like this :

TabPagerIndicator tbi;
   ViewPager pager;

in onCreate() do like this

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

I hope this will work out for you. :D

Cede answered 16/11, 2013 at 20:17 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.