ViewPagerIndicator - 将TabPageIndicator设置为中心

时间:2013-11-04 09:34:38

标签: java android horizontalscrollview android-scrollview viewpagerindicator

我为制作了时间表申请表,我正在使用ViewPagerIndicator作为片段。但现在我有一个问题,我想把TabPageIndicator放到中心。像这样: Example

我想设置单个标签的宽度和高度。并将该选项卡设置为支持选定/按下状态的drawable。

我还没有找到解决这些问题的方法。我尝试使用onPageSelectedContextThemeWrapper,但这不起作用。 (也许我没有正确使用它。)

除了ViewPagerIndicator之外,这一切都是可能的吗?还是我应该寻找其他东西? (也欢迎没有ViewPagerIndicator的其他选项。)

图片上的应用程序是Untis Mobile,可以在PlayStore上找到。 我已经问过创作者他们是怎么做的,但是他们说应用程序不是开源的。 (但我在消息来源中发现他们用TwoDScrollView来做,但我不确定)

修改

使用vpiTabPageIndicatorStyle修复样式。 (在XDA开发人员的帮助下!)

当我添加20个项目时,它会保留在中间但仅从项目4到项目17,项目1,2,3,18,19,20不在中间。参见:

Wrong

我可以添加3个空项目(或空白区域)以确保第一个和最后一个项目位于中间吗?像这样的东西(来自Untis Mobile应用程序):

Good

(我已在android:paddingLeft中尝试vpiTabPageIndicatorStyle,但这不起作用)

我知道viewPager.setCurrentItem(total/2)会将TabPageIndicator设置在中间,但是它会保持在中间位置,我无法选择其他一天(我在onPageScrolled中调用它)。所以我想滚动选中的一个需要在中间。这可能吗?

3 个答案:

答案 0 :(得分:6)

您正在寻找的小部件类似于Android水平滚轮。 android-spinnerwheel有一个实现,可以满足您的需求。

enter image description here

答案 1 :(得分:2)

然后你不需要viewpagerindicator。使用Amulya Khare在您的活动中建议的水平滚动视图,并在滚动时替换片段。

您的活动布局可能如下:

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

将听众设置为wheelview,当发生更改时,您可以将片段放入framelayout中。

答案 2 :(得分:-1)

像这样使用:

TabPagerIndicator tbi;
   ViewPager pager;
onCreate()中的

就是这样做的

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

我希望这对你有用。 :d