Я создал плавающую кнопку действия внутри ViewPager в activity_main. xml
<androidx.coordinatorlayout.widget.CoordinatorLayout
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="@color/colorSecondaryLight"
tools:context=".MainActivity">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorSecondaryLight"
style="@style/WakeMe.TabLayout"
android:elevation="8dp"/>
</com.google.android.material.appbar.AppBarLayout>
<androidx.viewpager.widget.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior"/>
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/coordinator_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom">
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/add_alarm_fab"
android:layout_width="121dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="16dp"
android:backgroundTint="@color/colorWhite"
android:tint="@color/colorPrimary"
app:borderWidth="0dp"
app:rippleColor="@color/colorPrimaryLight"
app:srcCompat="@drawable/ic_add"
/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/start_timer_fab"
android:layout_width="121dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="16dp"
android:backgroundTint="@color/colorWhite"
android:tint="@color/colorPrimary"
app:borderWidth="0dp"
app:rippleColor="@color/colorPrimaryLight"
app:srcCompat="@drawable/ic_play"
/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/start_stopwatch_fab"
android:layout_width="121dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="16dp"
android:backgroundTint="@color/colorWhite"
android:tint="@color/colorPrimary"
app:borderWidth="0dp"
app:rippleColor="@color/colorPrimaryLight"
app:srcCompat="@drawable/ic_play"
/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
Чтобы показать эффект анимации, я добавил addOnTabSelectedListener в tabLayout
tabLayout.addOnTabSelectedListener()
каждый раз, когда вкладка выбрана следующая функция:
private void animateFab(int position) {
switch (position) {
case 0:
fab_alarm.show();
fab_start_timer.hide();
fab_start_stopwatch.hide();
break;
case 1:
fab_alarm.hide();
fab_start_timer.show();
fab_start_stopwatch.hide();
break;
case 2:
fab_alarm.hide();
fab_start_timer.hide();
fab_start_stopwatch.show();
break;
}
}
Но когда вкладка изменяется в первый раз, она не работает, после этого она работает нормально. что я здесь делаю не так?