android - 修复了可见的标签/点 TabLayout android

标签 android android-viewpager android-tablayout viewpagerindicator

我有一个自定义 View ,里面有一个 ViewPager,并且有一个 TabLayout 附加到 ViewPager。机器人 View 设置为匹配父级。

<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(cardviews)中有很多项目,所以我想要修复 tablayout 的最大可见“点”(选项卡),但是,当用户 ScrollView 寻呼机时,点必须“移动/动画”。

此时我可以使用参数 app:tabMode="scrollable" 让它“移动”。 .

但我无法同时将最大可见点“修复”为一个值。

例如 10 个可见的点,但是当用户滚动 ViewPager 时,不会再出现点,但它们会动画。

我也尝试给 TabLayout 一个固定的 With ,但不能正常工作,它只显示 1 。

在接下来的示例中,view pager 有 61 个卡片浏览:

设置为可滚动模式: (在这种情况下,它会显示一些点,并且可以“滑动”)

enter image description here

设置为固定模式:(显示 61 个点)
enter image description here

最佳答案

在标签布局中试试这个,

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

关于android - 修复了可见的标签/点 TabLayout android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51820434/

相关文章:

android - 将 EasyTracker 与 FragmentActivity 和 ActionBarSherlock 结合使用

android TabLayout 更改所选选项卡图标的颜色,显示暗白色

android - 如果我们在 android 中隐藏 edittext,如何删除空格?

java - 服务内的广播接收器不工作

android - 动态隐藏 fragment (Viewpager 和 fragment )

android - 使用 View 作为页面而不是 fragment 保存 viewpager 的状态

android - viewpager 页面中 mapview 的手势问题

android - setOnTabSelectedListener 与 com.android.support 崩溃 :design:28. 0.0

android - 如何在 android 上的选项卡布局上动画覆盖编辑框?

android - 如何根据位图的 alpha 值在 Canvas 上绘制位图?