Add ability to override NavigationDestination.label
padding for NavigationBar
(#158260)
Fixes [Long NavigationBar tab titles can't be padded from the sides of the screen](https://github.com/flutter/flutter/issues/158130)
### Code sample
<details>
<summary>expand to view the code sample</summary>
```dart
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(
navigationBarTheme: const NavigationBarThemeData(
labelTextStyle:
WidgetStatePropertyAll(TextStyle(overflow: TextOverflow.ellipsis)),
labelPadding: EdgeInsets.symmetric(horizontal: 16, vertical: 4),
)),
home: Scaffold(
body: Center(
child: Text(
'Custom NavigationBar label padding',
style: Theme.of(context).textTheme.titleMedium,
),
),
bottomNavigationBar: NavigationBar(
destinations: const [
NavigationDestination(
icon: Icon(Icons.favorite_rounded),
label: 'Long Label Text',
),
NavigationDestination(
// icon: SizedBox.shrink(),
icon: Icon(Icons.favorite_rounded),
label: 'Long Label Text',
),
NavigationDestination(
icon: Icon(Icons.favorite_rounded),
label: 'Long Label Text',
),
],
),
),
);
}
}
```
</details>
### Default `NavigationDestination.label` padding with long label
<img width="458" alt="Screenshot 2024-11-06 at 14 30 52" src="https://github.com/user-attachments/assets/637e5e66-e05f-49fa-a4ae-72083b6ff884">
### Custom `NavigationDestination.label` padding with long label
<img width="458" alt="Screenshot 2024-11-06 at 14 32 02" src="https://github.com/user-attachments/assets/23ebf715-30d3-433c-92cd-c8f0fdb1571b">