我为android制作了时间表申请表,我正在使用ViewPagerIndicator作为片段。但现在我有一个问题,我想把TabPageIndicator放到中心。像这样:
我想设置单个标签的宽度和高度。并将该选项卡设置为支持选定/按下状态的drawable。
我还没有找到解决这些问题的方法。我尝试使用onPageSelected
和ContextThemeWrapper
,但这不起作用。 (也许我没有正确使用它。)
除了ViewPagerIndicator之外,这一切都是可能的吗?还是我应该寻找其他东西? (也欢迎没有ViewPagerIndicator的其他选项。)
图片上的应用程序是Untis Mobile,可以在PlayStore上找到。 我已经问过创作者他们是怎么做的,但是他们说应用程序不是开源的。 (但我在消息来源中发现他们用TwoDScrollView来做,但我不确定)
修改
使用vpiTabPageIndicatorStyle
修复样式。 (在XDA开发人员的帮助下!)
当我添加20个项目时,它会保留在中间但仅从项目4到项目17,项目1,2,3,18,19,20不在中间。参见:
我可以添加3个空项目(或空白区域)以确保第一个和最后一个项目位于中间吗?像这样的东西(来自Untis Mobile应用程序):
(我已在android:paddingLeft
中尝试vpiTabPageIndicatorStyle
,但这不起作用)
我知道viewPager.setCurrentItem(total/2)
会将TabPageIndicator设置在中间,但是它会保持在中间位置,我无法选择其他一天(我在onPageScrolled
中调用它)。所以我想滚动选中的一个需要在中间。这可能吗?
答案 0 :(得分:6)
您正在寻找的小部件类似于Android水平滚轮。 android-spinnerwheel有一个实现,可以满足您的需求。
答案 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