Skip to content

Scrollbar.thickness property is ignored when the Scrollbar is hovered #143881

@jezell

Description

@jezell

Steps to reproduce

  1. Set a thickness on scrollbar to something other than the default
  2. Hover the scrollbar
  3. Scrollbar will use thickness from Scrollbar theme when hovered instead of thickness manually set on scrollbar

Expected results

Scrollbar should not ignore manually set thickness on hover

Actual results

Scrollbar ignores manual thickness on hover

https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/material/scrollbar.dart#L333

  MaterialStateProperty<double> get _thickness {
    return MaterialStateProperty.resolveWith((Set<MaterialState> states) {
      if (states.contains(MaterialState.hovered) && _trackVisibility.resolve(states)) {
        return _scrollbarTheme.thickness?.resolve(states)
          ?? _kScrollbarThicknessWithTrack;
      }
      // The default scrollbar thickness is smaller on mobile.
      return widget.thickness
        ?? _scrollbarTheme.thickness?.resolve(states)
        ?? (_kScrollbarThickness / (_useAndroidScrollbar ? 2 : 1));
    });
  }

should be changed to

  MaterialStateProperty<double> get _thickness {
    if(widget.thickness != null) {
       return widget.thickness;
    }
    return MaterialStateProperty.resolveWith((Set<MaterialState> states) {
      if (states.contains(MaterialState.hovered) && _trackVisibility.resolve(states)) {
        return _scrollbarTheme.thickness?.resolve(states)
          ?? _kScrollbarThicknessWithTrack;
      }
      // The default scrollbar thickness is smaller on mobile.
      return _scrollbarTheme.thickness?.resolve(states)
        ?? (_kScrollbarThickness / (_useAndroidScrollbar ? 2 : 1));
    });
  }

Code sample

Code sample
Scrollbar(thickness: 50, ...)

Screenshots or Video

No response

Logs

No response

Flutter Doctor output

Doctor output
 Flutter (Channel stable, 3.19.0, on macOS 14.3.1 23D60 darwin-arm64, locale en-US)

Metadata

Metadata

Assignees

Labels

f: material designflutter/packages/flutter/material repository.found in release: 3.19Found to occur in 3.19found in release: 3.20Found to occur in 3.20frameworkflutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onr: fixedIssue is closed as already fixed in a newer versionteam-designOwned by Design Languages team

Type

No type

Projects

Status

Done (PR merged)

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions