Индикатор TabLayout (точки) не отображается - PullRequest
0 голосов
/ 14 октября 2019

У меня есть ViewPager и TabLayout с 5 слайдами, и я ищу точки, чтобы указать, на каком слайде находится пользователь, за этот вопрос SO .

Мой код:

slider.xml:

<android.support.v4.view.ViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<android.support.design.widget.TabLayout
    android:id="@+id/dots"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_alignParentBottom="true"
     android:alpha=".5"
     app:tabBackground="@drawable/tab_selector"
     app:tabGravity="center"
     app:tabIndicatorHeight="0dp"
     app:tabPaddingEnd="6dp"
     app:tabPaddingStart="6dp"
 />

tab_selector.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true">
        <shape
            android:shape="ring"
            android:innerRadius="0dp"
            android:thickness="4dp"
            android:useLevel="false">
            <solid android:color="@android:color/holo_red_dark"/>
        </shape>
    </item>
    <item>
        <shape
            android:shape="ring"
            android:innerRadius="0dp"
            android:thickness="3dp"
            android:useLevel="false">
            <solid android:color="@android:color/holo_orange_light"/>
        </shape>
    </item>
</selector>

фрагмент_first_screen.xml: (держатель изображения)

<android.support.constraint.ConstraintLayout
    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:background="@drawable/gradient_bg_first_screen">

    <ImageView
        android:id="@+id/first_screen_image"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:background="@android:color/transparent"
        android:contentDescription="p"
        android:scaleType="fitCenter"
        android:visibility="visible"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0"
        tools:srcCompat="@tools:sample/backgrounds/scenic" />

</android.support.constraint.ConstraintLayout>

slider.java

public class FirstScreensActivity extends FragmentActivity {
   private ViewPager pager;
   private TabLayout indicator;
   indicator = findViewById(R.id.dots);
   pager = findViewById(R.id.pager);

   pager.setAdapter(adapter);
   indicator.setupWithViewPager(pager, true);
   FragmentPagerAdapter adapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
        @Override
        public Fragment getItem(int position) {
            Bundle bundle = new Bundle();
            bundle.putInt("imgResource", imgResources[position]);
            FirstScreenFragment fragment = new FirstScreenFragment();
            fragment.setArguments(bundle);
            return fragment;
        }

        @Override
        public int getCount() {
            return imgResources.length;
        }
    };
   }

Точки не видны, но я знаю, что вкладки есть, потому что я могу перемещаться, касаясь их. А фон TabLayout представляет собой сплошную белую пустую полосу. Так что ни точки, ни индикаторы селектора вкладок не видны, и я не знаю почему. Я перепробовал множество примеров и не могу найти точки. AS 3.5.1 (28)

...