Unverified Commit 9608a64d authored by Kate Lovett's avatar Kate Lovett Committed by GitHub

Revert "Remove BottomNavigationBarItem.title deprecation" (#91930)

parent 99c8dd56
......@@ -254,6 +254,7 @@ class CupertinoTabBar extends StatelessWidget implements PreferredSizeWidget {
Expanded(
child: Center(child: active ? item.activeIcon : item.icon),
),
if (item.title != null) item.title!,
if (item.label != null) Text(item.label!),
];
}
......
......@@ -185,8 +185,9 @@ class BottomNavigationBar extends StatefulWidget {
}) : assert(items != null),
assert(items.length >= 2),
assert(
items.every((BottomNavigationBarItem item) => item.title != null) ||
items.every((BottomNavigationBarItem item) => item.label != null),
'Every item must have a non-null label',
'Every item must have a non-null title or label',
),
assert(0 <= currentIndex && currentIndex < items.length),
assert(elevation == null || elevation >= 0.0),
......@@ -246,13 +247,13 @@ class BottomNavigationBar extends StatefulWidget {
final double iconSize;
/// The color of the selected [BottomNavigationBarItem.icon] and
/// [BottomNavigationBarItem.label].
/// [BottomNavigationBarItem.title].
///
/// If null then the [ThemeData.primaryColor] is used.
final Color? selectedItemColor;
/// The color of the unselected [BottomNavigationBarItem.icon] and
/// [BottomNavigationBarItem.label]s.
/// [BottomNavigationBarItem.title]s.
///
/// If null then the [ThemeData.unselectedWidgetColor]'s color is used.
final Color? unselectedItemColor;
......@@ -691,7 +692,7 @@ class _Label extends StatelessWidget {
),
),
alignment: Alignment.bottomCenter,
child: Text(item.label!),
child: item.title ?? Text(item.label!),
),
);
......
......@@ -78,13 +78,13 @@ class BottomNavigationBarThemeData with Diagnosticable {
final IconThemeData? unselectedIconTheme;
/// The color of the selected [BottomNavigationBarItem.icon] and
/// [BottomNavigationBarItem.label].
/// [BottomNavigationBarItem.title].
///
/// See [BottomNavigationBar.selectedItemColor].
final Color? selectedItemColor;
/// The color of the unselected [BottomNavigationBarItem.icon] and
/// [BottomNavigationBarItem.label]s.
/// [BottomNavigationBarItem.title]s.
///
/// See [BottomNavigationBar.unselectedItemColor].
final Color? unselectedItemColor;
......
......@@ -24,11 +24,17 @@ class BottomNavigationBarItem {
/// The argument [icon] should not be null and the argument [label] should not be null when used in a Material Design's [BottomNavigationBar].
const BottomNavigationBarItem({
required this.icon,
@Deprecated(
'Use "label" instead, as it allows for an improved text-scaling experience. '
'This feature was deprecated after v1.19.0.',
)
this.title,
this.label,
Widget? activeIcon,
this.backgroundColor,
this.tooltip,
}) : activeIcon = activeIcon ?? icon,
assert(label == null || title == null),
assert(icon != null);
/// The icon of the item.
......@@ -61,6 +67,15 @@ class BottomNavigationBarItem {
/// * [BottomNavigationBarItem.icon], for a description of how to pair icons.
final Widget activeIcon;
/// The title of the item. If the title is not provided only the icon will be shown when not used in a Material Design [BottomNavigationBar].
///
/// This field is deprecated, use [label] instead.
@Deprecated(
'Use "label" instead, as it allows for an improved text-scaling experience. '
'This feature was deprecated after v1.19.0.',
)
final Widget? title;
/// The text label for this [BottomNavigationBarItem].
///
/// This will be used to create a [Text] widget to put in the bottom navigation bar.
......
......@@ -429,7 +429,7 @@ Future<void> main() async {
semantics.dispose();
});
testWidgets('Label of items should be nullable', (WidgetTester tester) async {
testWidgets('Title of items should be nullable', (WidgetTester tester) async {
final MemoryImage iconProvider = MemoryImage(Uint8List.fromList(kTransparentImage));
final List<int> itemsTapped = <int>[];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment