From 2fc2e6a167213e7b7f0f1491120b212132972543 Mon Sep 17 00:00:00 2001 From: pekingme <8545955+pekingme@users.noreply.github.com> Date: Tue, 21 Jun 2022 19:25:23 +0000 Subject: [PATCH] [Tab] Fixed indicator not updating when a tab to the start/left of the selected tab is removed. PiperOrigin-RevId: 456322731 --- .../tabs/TabsScrollableDemoFragment.java | 17 +++++-- .../layout/cat_tabs_scrollable_fragment.xml | 16 +++++-- .../catalog/tabs/res/values/strings.xml | 2 + .../android/material/tabs/TabLayout.java | 45 +++++-------------- 4 files changed, 39 insertions(+), 41 deletions(-) diff --git a/catalog/java/io/material/catalog/tabs/TabsScrollableDemoFragment.java b/catalog/java/io/material/catalog/tabs/TabsScrollableDemoFragment.java index f011cc7219c..09535d5e324 100644 --- a/catalog/java/io/material/catalog/tabs/TabsScrollableDemoFragment.java +++ b/catalog/java/io/material/catalog/tabs/TabsScrollableDemoFragment.java @@ -18,6 +18,8 @@ import io.material.catalog.R; +import static java.lang.Math.max; + import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -87,14 +89,23 @@ public View onCreateDemoView( numTabs++; }); - Button removeButton = view.findViewById(R.id.remove_tab_button); - removeButton.setOnClickListener( + Button removeFirstButton = view.findViewById(R.id.remove_first_tab_button); + removeFirstButton.setOnClickListener( + v -> { + if (scrollableTabLayout.getTabCount() > 0) { + scrollableTabLayout.removeTabAt(0); + } + numTabs = max(0, numTabs - 1); + }); + + Button removeLastButton = view.findViewById(R.id.remove_last_tab_button); + removeLastButton.setOnClickListener( v -> { Tab tab = scrollableTabLayout.getTabAt(scrollableTabLayout.getTabCount() - 1); if (tab != null) { scrollableTabLayout.removeTab(tab); } - numTabs = Math.max(0, numTabs - 1); + numTabs = max(0, numTabs - 1); }); return view; } diff --git a/catalog/java/io/material/catalog/tabs/res/layout/cat_tabs_scrollable_fragment.xml b/catalog/java/io/material/catalog/tabs/res/layout/cat_tabs_scrollable_fragment.xml index bd7ad4b74af..6c2a5c6e67b 100644 --- a/catalog/java/io/material/catalog/tabs/res/layout/cat_tabs_scrollable_fragment.xml +++ b/catalog/java/io/material/catalog/tabs/res/layout/cat_tabs_scrollable_fragment.xml @@ -32,6 +32,14 @@ android:layout_marginBottom="@dimen/cat_tabs_standard_spacing" android:orientation="vertical"> +