Repository: flutter
Issue: Can't change NavigationRail item hover color and shape
Labels: framework,f: material design,has reproducible steps,P3,team-design,triaged-design,found in release: 3.13,found in release: 3.17

### Is there an existing issue for this?

- [X] I have searched the [existing issues](https://github.com/flutter/flutter/issues)
- [X] I have read the [guide to filing a bug](https://flutter.dev/docs/resources/bug-reports)

### Steps to reproduce

Basically, I'm trying to change the hover color and hover shape of NavigationRailDestination items, unfortunately I'm not able to find an option in flutter. 

already asked in below channels:
[flutterdev discord](https://discord.com/channels/420324994703163402/421445316617961502)
[reddit: how_can_we_change_the_flutter_navigationrail_item](https://www.reddit.com/r/flutterhelp/comments/17u6p52/how_can_we_change_the_flutter_navigationrail_item/)
[stackoverflow: how-can-we-change-the-flutter-navigationrail-item-hover-color-and-shape](https://stackoverflow.com/questions/77467961/how-can-we-change-the-flutter-navigationrail-item-hover-color-and-shape)

sample dartpad code>: [https://dartpad.dev/?id=1d0f394697cbf864ab2b478a739cbb0a](https://dartpad.dev/?id=1d0f394697cbf864ab2b478a739cbb0a)

1. Add a NavigationRail Widget
2. Add NavigationRailDestinations with icons and label
3. Run the application
4. Try to change the hover color of NavigationRailDestinations item


### Expected results

There should be an option or property for NavigationRail or NavigationRailDestination widget to change the default hover color and shape of the hover background of the item. 

### Actual results

There is no option or property available for NavigationRail or NavigationRailDestination widget to change the default hover color and shape of the hover background of the item. 

### Code sample

<details><summary>Code sample</summary>

```dart
import 'package:flutter/material.dart';

/// Flutter code sample for [NavigationRail].

void main() => runApp(const NavigationRailExampleApp());

class NavigationRailExampleApp extends StatelessWidget {
  const NavigationRailExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
          sliderTheme: const SliderThemeData(
              showValueIndicator: ShowValueIndicator.always,
              activeTrackColor: Colors.white,
              thumbColor: Colors.white,
              valueIndicatorColor: Colors.red),
          listTileTheme: const ListTileThemeData(
              iconColor: Colors.white, textColor: Colors.white),
          appBarTheme:
              AppBarTheme(backgroundColor: Colors.grey.shade900, elevation: 0),
          applyElevationOverlayColor: true,
          focusColor: Colors.grey,
          scaffoldBackgroundColor: Colors.grey.shade900,
          navigationRailTheme: NavigationRailThemeData(
              backgroundColor: Colors.grey.shade900,
              unselectedLabelTextStyle: const TextStyle(
                color: Colors.white,
              ),
              selectedLabelTextStyle: TextStyle(color: Colors.yellow.shade700),
              unselectedIconTheme: const IconThemeData(color: Colors.white),
              selectedIconTheme: const IconThemeData(color: Colors.yellow),
              indicatorColor: Colors.grey.shade200),
          elevatedButtonTheme: ElevatedButtonThemeData(
            style: ButtonStyle(
                elevation: MaterialStateProperty.all(0),
                backgroundColor:
                    MaterialStateProperty.all<Color>(Colors.grey.shade900),
                shadowColor: MaterialStateProperty.all<Color>(
                    Colors.grey.shade700)), // Here Im having the error
          )),
      home: const NavRailExample(),
    );
  }
}

class NavRailExample extends StatefulWidget {
  const NavRailExample({super.key});

  @override
  State<NavRailExample> createState() => _NavRailExampleState();
}

class _NavRailExampleState extends State<NavRailExample> {
  int _selectedIndex = 0;
  NavigationRailLabelType labelType = NavigationRailLabelType.all;
  bool showLeading = false;
  bool showTrailing = false;
  double groupAlignment = -1.0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Row(
        children: <Widget>[
          NavigationRail(
            extended: true,
            groupAlignment: groupAlignment,
            labelType: NavigationRailLabelType.none,
            selectedIndex: _selectedIndex,
            onDestinationSelected: (int index) {
              setState(() {
                _selectedIndex = index;
              });
            },
            leading: showLeading
                ? FloatingActionButton(
                    elevation: 0,
                    onPressed: () {
                      // Add your onPressed code here!
                    },
                    child: const Icon(Icons.add),
                  )
                : const SizedBox(),
            trailing: showTrailing
                ? IconButton(
                    onPressed: () {
                      // Add your onPressed code here!
                    },
                    icon: const Icon(Icons.more_horiz_rounded),
                  )
                : const SizedBox(),
            destinations: const <NavigationRailDestination>[
              NavigationRailDestination(
                icon: Icon(Icons.favorite_border),
                selectedIcon: Icon(Icons.favorite),
                label: Text('First'),
              ),
              NavigationRailDestination(
                icon: Icon(Icons.bookmark_border),
                selectedIcon: Icon(Icons.book),
                label: Text('Second'),
              ),
              NavigationRailDestination(
                icon: Icon(Icons.star_border),
                selectedIcon: Icon(Icons.star),
                label: Text('Third'),
              ),
            ],
          ),
          const VerticalDivider(thickness: 1, width: 1),
          // This is the main content.
          Expanded(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Text('selectedIndex: $_selectedIndex'),
                const SizedBox(height: 20),
                Text('Label type: ${labelType.name}'),
                const SizedBox(height: 10),
                OverflowBar(
                  spacing: 10.0,
                  children: <Widget>[
                    ElevatedButton(
                      onPressed: () {
                        setState(() {
                          labelType = NavigationRailLabelType.none;
                        });
                      },
                      child: const Text('None'),
                    ),
                    ElevatedButton(
                      onPressed: () {
                        setState(() {
                          labelType = NavigationRailLabelType.selected;
                        });
                      },
                      child: const Text('Selected'),
                    ),
                    ElevatedButton(
                      onPressed: () {
                        setState(() {
                          labelType = NavigationRailLabelType.all;
                        });
                      },
                      child: const Text('All'),
                    ),
                  ],
                ),
                const SizedBox(height: 20),
                Text('Group alignment: $groupAlignment'),
                const SizedBox(height: 10),
                OverflowBar(
                  spacing: 10.0,
                  children: <Widget>[
                    ElevatedButton(
                      onPressed: () {
                        setState(() {
                          groupAlignment = -1.0;
                        });
                      },
                      child: const Text('Top'),
                    ),
                    ElevatedButton(
                      onPressed: () {
                        setState(() {
                          groupAlignment = 0.0;
                        });
                      },
                      child: const Text('Center'),
                    ),
                    ElevatedButton(
                      onPressed: () {
                        setState(() {
                          groupAlignment = 1.0;
                        });
                      },
                      child: const Text('Bottom'),
                    ),
                  ],
                ),
                const SizedBox(height: 20),
                OverflowBar(
                  spacing: 10.0,
                  children: <Widget>[
                    ElevatedButton(
                      onPressed: () {
                        setState(() {
                          showLeading = !showLeading;
                        });
                      },
                      child:
                          Text(showLeading ? 'Hide Leading' : 'Show Leading'),
                    ),
                    ElevatedButton(
                      onPressed: () {
                        setState(() {
                          showTrailing = !showTrailing;
                        });
                      },
                      child: Text(
                          showTrailing ? 'Hide Trailing' : 'Show Trailing'),
                    ),
                  ],
                ),
              ],
            ),
          ),
        ],
      ),
    );
  }
}

```

</details>


### Screenshots or Video

<details>
<summary>Screenshots / Video demonstration</summary>

![image](https://github.com/flutter/flutter/assets/12730428/2cff789f-b6e5-4a4e-9587-70f67ba2ed7e)

</details>


### Logs

<details><summary>Logs</summary>

```console
[Paste your logs here]
```

</details>


### Flutter Doctor output

<details><summary>Doctor output</summary>

```console

[√] Flutter (Channel stable, 3.13.9, on Microsoft Windows [Version 10.0.22621.2283], locale en-IN)
    • Flutter version 3.13.9 on channel stable at C:\Users\immrn\Work\flutter_sdk\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision d211f42860 (3 weeks ago), 2023-10-25 13:42:25 -0700
    • Engine revision 0545f8705d
    • Dart version 3.1.5
    • DevTools version 2.25.0

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at C:\Users\immrn\AppData\Local\Android\Sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = C:\Users\immrn\AppData\Local\Android\Sdk
    • ANDROID_SDK_ROOT = C:\Users\immrn\AppData\Local\Android\Sdk
    • Java binary at: C:\Program Files\Android\Android Studio\jbr\bin\java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-10027231)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[X] Visual Studio - develop Windows apps
    X Visual Studio not installed; this is necessary to develop Windows apps.
      Download at https://visualstudio.microsoft.com/downloads/.
      Please install the "Desktop development with C++" workload, including all of its default components

[√] Android Studio (version 2022.3)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-10027231)

[√] VS Code (version 1.84.1)
    • VS Code at C:\Users\immrn\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension can be installed from:
       https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[√] Connected device (4 available)
    • PATH 7XPRO (mobile) • 192.168.29.142:5555 • android-arm    • Android 9 (API 28)
    • Windows (desktop)   • windows             • windows-x64    • Microsoft Windows [Version 10.0.22621.2283]
    • Chrome (web)        • chrome              • web-javascript • Google Chrome 119.0.6045.124
    • Edge (web)          • edge                • web-javascript • Microsoft Edge 119.0.2151.58

[√] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.


```

</details>