当标签页超过64个时,如何消除Android TV中的TabLayout滚动跳跃(跳过)?

时间:2019-06-30 19:00:16

标签: android-tablayout android-tv

我正在尝试使用TabLayout在Android TV应用中实现标签导航。选项卡很多,因此我启用了“可滚动”模式。 当我尝试使用遥控器(从左到右)浏览选项卡时,选项卡指示符不会移动到下一个选项卡,而是会跳到最右边,一次又一次地跳到右边到达某个位置。到达此位置后,选项卡指示器开始正常移动。

我做了一些实验,发现这种异常的滚动行为仅在TabLayout中的标签数超过64个时才会出现

首先,我在TabHost上遇到了这个问题,并将代码更改为使用TabLayout,但是问题仍然存在。 我使用所有不同组合的相关选项,但均无效果。 下面是我的布局文件的片段

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:isScrollContainer="false"
        android:orientation="vertical">

        <com.google.android.material.tabs.TabLayout
            android:id="@+id/tabLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="10dp"
            android:layout_weight="1"
            android:background="@color/black_opaque"
            android:fillViewport="true"
            android:measureAllChildren="true"
            android:nestedScrollingEnabled="false"
            android:padding="2dp"
            app:tabGravity="center"
            app:tabMode="scrollable"
            app:tabTextAppearance="@style/TextAppearance.AppCompat.Medium" />

        <GridView
            android:id="@+id/gridView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="4" />
    </LinearLayout>

我已经录制了视频以显示它的外观: scroll_skipping.mp4

我想念什么?如何配置TabLayout以避免这种行为?

1 个答案:

答案 0 :(得分:0)

最后我找不到任何解决方案,它看起来像是Bug或TabLayout的限制。 因此,我更改了布局,并使用ListView完成了我需要的工作。

结论- TabLayout用于有限数量的标签,最多不超过64个,越少越好。