我有一个自定义视图,其中包含ViewPager,并且TabLayout附加到ViewPager。 Bot视图设置为与父视图匹配。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:fitsSystemWindows="true">
<CarouselPointMarkerViewPager
android:id="@+id/carousel_point_view_pager"
android:layout_width="match_parent"
android:layout_height="160dp"
android:clipToPadding="false"
android:overScrollMode="never"
android:paddingStart="@dimen/carousel_recycler_padding_start"
android:paddingEnd="@dimen/carousel_recycler_padding_end"
android:layout_gravity="center"/>
<android.support.design.widget.TabLayout
android:id="@+id/tablayout_point"
android:layout_width="wrap_content"
android:layout_height="25dp"
android:layout_marginBottom="20dp"
android:layout_marginStart="20dp"
android:layout_marginTop="10dp"
android:layout_gravity="start|bottom"
app:tabBackground="@drawable/tab_selector_carousel_point"
app:tabIndicatorHeight="0dp"
app:tabPaddingEnd="4dp"/>
</LinearLayout>
TabLayout背景是:
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/active_point"
android:state_selected="true"/>
<item android:drawable="@drawable/non_active_point"/>
</selector>
示例:active_point
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape
android:innerRadius="0dp"
android:shape="ring"
android:thickness="4dp"
android:useLevel="false">
<solid android:color="@color/bluelight"/>
</shape>
</item>
</layer-list>
目前,它可以完美运行。我将在viewpager(卡片视图)中有很多项目,所以我想要修复固定布局的最大可见“点”(选项卡),但是,当用户滚动视图分页器时,点必须“移动/设置动画” “。
此刻,我可以使用参数app:tabMode="scrollable"
使其“移动”。
但是我无法同时将最大可见点固定为一个值。
例如10个可见的点,但是当用户滚动ViewPager时,将不再显示任何点,但它们会设置动画。
我还尝试给TabLayout赋予一个固定的With,但不能正常工作,它只显示1。
在下一个示例中,“查看传呼机”具有61次卡片浏览:
设置为可滚动模式:(在这种情况下,它显示一些点,并且可以“滑动”)
答案 0 :(得分:0)
在标签页布局中尝试此操作
<android.support.design.widget.TabLayout
android:id="@+id/tablayout_point"
android:layout_width="wrap_content"
android:layout_height="25dp"
android:layout_marginBottom="20dp"
android:layout_marginStart="20dp"
android:layout_marginTop="10dp"
android:layout_gravity="start|bottom"
app:tabBackground="@drawable/tab_selector_carousel_point"
app:tabIndicatorHeight="0dp"
app:tabGravity="center" <-- add this line.
app:tabMode="scrollable" <-- add this line.
app:tabPaddingEnd="4dp"/>