61 Commits

Author SHA1 Message Date
connieshi
d3e76d3a61 Alleviate badge being clipped off by calling setClipChildren(false) and setClipToPadding(false) on a tabview's parent.
If a long badge is shown on an end tab with a long string, it could still be clipped off. Current workaround is to adjust the badge offset.

Resolves https://github.com/material-components/material-components-android/issues/1168

PiperOrigin-RevId: 305686535
2020-04-13 09:27:58 -07:00
isabellekim
358f9a7a3d Add @deprecated to javadocs for methods and classes marked @Deprecated.
PiperOrigin-RevId: 300567533
2020-03-13 11:07:17 -04:00
marianomartin
bbd645a341 [TabLayout] Mutate tabSelectedIndicator before tinting
Resolves https://github.com/material-components/material-components-android/issues/1029
Resolves https://github.com/material-components/material-components-android/issues/963

PiperOrigin-RevId: 297866034
2020-02-28 13:02:51 -05:00
isabellekim
1f9de68025 [All] Add support for materialThemeOverlay
Resolves https://github.com/material-components/material-components-android/pull/948

GIT_ORIGIN_REV_ID=5a8bb35a56c1b813df47d964de8482a26e0da66d
PiperOrigin-RevId: 293839172
2020-02-10 09:55:19 -05:00
Material Design Team
f1053dfffb Add roleDescriptions to tabs for accessibility
PiperOrigin-RevId: 292620627
2020-02-03 10:22:49 -05:00
Material Design Team
1febcf94b1 Automated g4 rollback of changelist 292560239
PiperOrigin-RevId: 292606404
2020-01-31 16:53:08 -05:00
Material Design Team
811ea17e60 Add roleDescriptions to tabs for accessibility
PiperOrigin-RevId: 292560239
2020-01-31 13:38:39 -05:00
cketcham
0f18d9084c Prevent setting a height less than requested by using Math.round()
PiperOrigin-RevId: 290707432
2020-01-21 08:40:35 -08:00
marianomartin
3cd591fd71 Change OnTabSelectedListener back to extend BaseOnTabSelectedListener
This brings back binary compatibility with 1.0.0 and 1.1.0-RC.

The reason this broke was because members were removed from the OnTabSelectedListener superclass set.
Which is not supported, regardless of whether tab OnTabSelectedListener still kept the same members.

https://docs.oracle.com/javase/specs/jls/se7/html/jls-13.html#jls-13.4.4

Resolves  https://github.com/material-components/material-components-android/issues/903?

PiperOrigin-RevId: 290152502
2020-01-17 13:06:04 -05:00
connieshi
a15d3ea219 Update TabLayout so it takes into account TabGravity in MODE_SCROLLABLE.
Add TabGravity.GRAVITY_START to maintain existing (default) MODE_SCROLLABLE behavior.
MODE_SCROLLABLE currently supports GRAVITY_CENTER and GRAVITY_START
MODE_FIXED does not support GRAVITY_START.

PiperOrigin-RevId: 289910847
2020-01-15 14:25:50 -08:00
marianomartin
17912e0599 Bring back removed TabLayout method for compatibility
Resolves https://github.com/material-components/material-components-android/issues/903

We accidentally removed this since it wasn't in 1.0.0 and it was deprecated. It exists to keep compatibility with version 27.0 of the library.

PiperOrigin-RevId: 289832106
2020-01-15 07:42:50 -08:00
Material Design Team
5de9f01ade Move a11y delegate code from BottomNavigationView and TabLayout to onInitializeA11yNodeInfo.
PiperOrigin-RevId: 286929652
2019-12-23 15:44:28 -05:00
Material Design Team
d548948b9c [TabLayout] Re-introducing TabLayout indicator animator fix from cl/283626239
Includes a preemptive fix for b/145715060, which was introduced in the first attempt.

PiperOrigin-RevId: 284229049
2019-12-08 15:21:33 -05:00
Material Design Team
d8c35d7de9 Automated g4 rollback of changelist 283626239
PiperOrigin-RevId: 284045727
2019-12-08 14:43:33 -05:00
Material Design Team
aa3164d43a [Tabs] Remove unnecessary animator cancellation in SlidingTabIndicator's onLayout method.
PiperOrigin-RevId: 283626239
2019-12-05 14:37:00 -05:00
Material Design Team
cc9b9c1103 Add CollectionInfos and CollectionItemInfos to tabs for accessibility. Also make a tab non-clickable by a11y when it is selected.
PiperOrigin-RevId: 281785987
2019-11-22 21:25:50 +00:00
connieshi
b200a3b6d2 Hardcode classname used to set accessibility item type to avoid being proguarded.
PiperOrigin-RevId: 281120646
2019-11-19 10:27:29 -08:00
ldjesper
a2434cd738 Remove deprecated method setOnTabSelectedListener
PiperOrigin-RevId: 272946975
2019-10-04 16:34:41 -04:00
ldjesper
440fea02c8 Make TabView a public final class since a field of that type is in the 1.0.0 public API
Reference: https://github.com/material-components/material-components-android/blob/master/lib/java/com/google/android/material/tabs/TabLayout.java#L1888

Resolves https://github.com/material-components/material-components-android/issues/581

PiperOrigin-RevId: 272592933
2019-10-03 11:44:06 -04:00
connieshi
230ed9263f Add null checks to avoid NPE when tabs that have badges are reset .
Resolves https://github.com/material-components/material-components-android/issues/620

PiperOrigin-RevId: 271126107
2019-09-26 17:54:25 -04:00
marianomartin
215a839598 Internal cleanup
PiperOrigin-RevId: 267504117
2019-09-12 13:48:16 -04:00
marianomartin
0d4515cb46 Internal cleanup
PiperOrigin-RevId: 265971745
2019-08-29 14:59:20 -04:00
cketcham
9aa7c6c5e8 Add @NonNull and @Nullable annotations
PiperOrigin-RevId: 265133335
2019-08-29 11:16:11 -04:00
gauthams
3f4ae91ebc Don't include padding in idealHeight measurement for TabLayout child view
PiperOrigin-RevId: 264194304
2019-08-20 11:13:51 -04:00
gauthams
3085967e11 Enable TabLayout to wrap_content for its height if the tab items are taller than the default TabLayout height
PiperOrigin-RevId: 262462019
2019-08-16 15:37:07 -04:00
dniz
cc73c2a630 Update TODOs
PiperOrigin-RevId: 259535844
2019-07-23 11:21:39 -04:00
isabellekim
a628bf516b Revert the library to compile with Java 7: revert lambdas, add necessary casts, and make some variables final.
Continue compile shrine demo, catalog, and tests with Java 8.

PiperOrigin-RevId: 257874888
2019-07-15 19:19:23 -04:00
marianomartin
164bf0fabd Internal cleanup
PiperOrigin-RevId: 255609320
2019-07-03 14:02:53 -04:00
dniz
cd1b6cdf66 Update TabLayout elevation overlays to be based absolute elevation, factoring in the elevation of all parent views
Resolves https://github.com/material-components/material-components-android/issues/381

PiperOrigin-RevId: 255478483
2019-07-03 14:01:02 -04:00
dniz
5df3bebd63 Update elevation overlays to be based absolute elevation, factoring in the elevation of all parent views
Will follow-up with TabLayout absolute elevation separately

Resolves https://github.com/material-components/material-components-android/issues/381

PiperOrigin-RevId: 255404830
2019-07-03 13:55:49 -04:00
marianomartin
367b295624 Internal cleanup
PiperOrigin-RevId: 254414602
2019-06-24 17:12:42 -04:00
marianomartin
2de39fafe0 Internal cleanup
PiperOrigin-RevId: 253799644
2019-06-18 13:57:49 -04:00
cketcham
bff75f2d3e Update to lamdas
PiperOrigin-RevId: 252846439
2019-06-18 13:21:02 -04:00
connieshi
b3980237a4 Rename Tab#showBadge to Tab#getOrCreateBadge(). No longer ensures that the badge is visible. User should call BadgeDrawable#setVisible(boolean).
PiperOrigin-RevId: 252635742
2019-06-18 11:57:19 -04:00
connieshi
6aab297f53 Remove context parameter from BadgeDrawable#getContentDescription(Context)
PiperOrigin-RevId: 251492075
2019-06-10 08:55:30 -07:00
connieshi
b247e00d8a Add Talkback support for badge + TabLayout.
PiperOrigin-RevId: 250397444
2019-05-29 16:27:19 -04:00
connieshi
5fdfd9d107 Begin integrating BadgeDrawable into TabLayout.
PiperOrigin-RevId: 250348653
2019-05-29 16:25:24 -04:00
marianomartin
455ba2557b Internal cleanup
PiperOrigin-RevId: 249490219
2019-05-24 14:22:06 -04:00
connieshi
5e78ba1440 Fix bug in controllable tabs demo that didn't show icon or label if they were switched from off to on and gravity was set to center.
PiperOrigin-RevId: 248330945
2019-05-16 17:18:15 -04:00
Material Design Team
95a93dfa99 Adding TabLayoutMediator to MDC tabs library
The TabLayoutMediator makes it possible for a ViewPager2 to be linked to
a TabLayout similarly to how a ViewPager was linked to TabLayout.

PiperOrigin-RevId: 248127710
2019-05-16 12:47:31 -04:00
Material Design Team
54df381127 Migrate viewpager android support libraries to androidx.
PiperOrigin-RevId: 247499141
2019-05-16 12:39:13 -04:00
Material Design Team
2f3e1c4cf4 Add new MODE_AUTO setting for TabLayout. MODE_AUTO behaves like MODE_FIXED with GRAVITY_CENTER while the tabs fit in the content view. Once the tabs expand beyond the TabLayout width, the TabLayout behaves as MODE_SCROLLABLE.
PiperOrigin-RevId: 243852684
2019-04-19 21:21:27 -04:00
gauthams
c384ec5423 Add elevation overlay support to TabLayout
PiperOrigin-RevId: 243131594
2019-04-19 15:48:05 -04:00
gauthams
add453fe8f Fix link to deprecated API in TabLayout documentation
PiperOrigin-RevId: 242672044
2019-04-19 13:16:55 -04:00
cketcham
0ce688ddf2 Automated g4 rollback of changelist 239207045
PiperOrigin-RevId: 239229246
2019-03-22 16:55:47 -04:00
Material Design Team
af15a5f943 Adding TabLayoutMediator to MDC tabs library
The TabLayoutMediator makes it possible for a ViewPager2 to be linked to
a TabLayout similarly to how a ViewPager was linked to TabLayout.

PiperOrigin-RevId: 239207045
2019-03-22 16:51:43 -04:00
gauthams
1db449c897 Refactor dpToPx method into ViewUtils
PiperOrigin-RevId: 235243747
2019-02-24 14:38:37 -05:00
Material Design Team
9dab50e145 Expose methods for fine grained control of TabLayout animation
Makes the following methods public:
- setScrollPosition(int, float, boolean, boolean)
- selectTab(Tab)
- selectTab(Tab, boolean)

This makes it possible to separate the link between a TabLayout and a ViewPager to another class.

PiperOrigin-RevId: 228887919
2019-01-18 14:01:38 -05:00
cketcham
dc72aaeed4 Migrate Gradle build and sources to androidx
PiperOrigin-RevId: 225551505
2018-12-21 11:07:45 -05:00
cketcham
cce3b93a9d Remove binary incompatibility between 27.1.1 and 28.0.0 for TabLayout
PiperOrigin-RevId: 223444074
2018-12-06 11:39:28 -05:00