Связь ViewPager и TabLayout

Реализована связь TabLayout и ViewPager. При щелчке на вкладке TabLayout происходит прокручивание на соответствующую страницу ViewPager. При прокручивании страниц, курсор переходит на соответствующую вкладку, но сама лента вкладок не прокручивается. Поскольку вкладок в TabLayout много и они выходят за пределы экрана, то при прокручивании до крайних страниц ViewPager, соответствующие вкладки TabLayout на экране не видны. Как сделать так, чтобы при прокручивании страниц ViewPager, происходило прокручивание текущей вкладки TabLayout в пределы видимости экрана?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="org.debtgement.dm.MainActivity">

    <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <com.google.android.material.appbar.AppBarLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

            <com.google.android.material.tabs.TabLayout
                android:id="@+id/tabs"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:textSize="8sp"
                app:tabMode="auto" />
        </com.google.android.material.appbar.AppBarLayout>
    </HorizontalScrollView>

    <androidx.viewpager.widget.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

Связь TabLayout и ViewPager:

ViewPager pager;
SectionsPagerAdapter pagerAdapter =
        new SectionsPagerAdapter(getSupportFragmentManager());
pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(pagerAdapter);

//Связывание ViewPager с TabLayout
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(pager);

Ответы (1 шт):

Автор решения: ЮрийСПб

У вас в разметке есть лишний HorizontalScrollView. Скроллинг табов будет работать и без него, надо его убрать.

→ Ссылка