9

制作了一个时间表应用程序,我使用ViewPagerIndicator作为片段。但是现在我有一个问题,我想将 TabPageIndicator 放在中心。像这样: 例子

我想设置单独的标签宽度和高度。并将该选项卡设置为支持选定/按下状态的可绘制对象。

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

这一切都可能实现吗,还是我应该寻找除 ViewPagerIndicator 之外的其他东西?(也欢迎使用不带 ViewPagerIndicator 的其他选项)。

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

编辑:

样式是固定的vpiTabPageIndicatorStyle。(在 XDA 开发人员的帮助下!)

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

错误的

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

好的

(我已经试过android:paddingLeft了,vpiTabPageIndicatorStyle但是不行)

我知道这viewPager.setCurrentItem(total/2)会将 TabPageIndicator 设置在中间,但它会停留在中间,我无法选择另一天(我称它为 in onPageScrolled)。所以我想当你滚动选择的需要在中间。这可能吗?

4

3 回答 3

6

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

在此处输入图像描述

于 2013-11-04T09:36:45.740 回答
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.

于 2013-11-11T09:37:39.420 回答
-1

像这样使用它:

TabPagerIndicator tbi;
   ViewPager pager;

onCreate()这样做

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

我希望这对你有用。:D

于 2013-11-16T20:17:36.487 回答