mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
This commit is contained in:
parent
5b5eaf0ea1
commit
fbc4e9bcc5
@ -693,13 +693,8 @@ class MaterialApp extends StatefulWidget {
|
||||
/// [GlowingOverscrollIndicator] to [Scrollable] descendants when executing on
|
||||
/// [TargetPlatform.android] and [TargetPlatform.fuchsia].
|
||||
///
|
||||
/// The [buildScrollbar] function is called by the [Scrollable] to wrap with a
|
||||
/// [Scrollbar] when appropriate. On all platforms, when the Scrollable [Axis] is
|
||||
/// [Axis.horizontal], an always visible Scrollbar will be applied. This is
|
||||
/// because horizontal [ScrollView]s have lower discoverability as scrollable
|
||||
/// content. When the Axis is [Axis.vertical] a Scrollbar is applied on
|
||||
/// desktop platforms. In this vertical case, [Scrollbar.isAlwaysShown] is not
|
||||
/// set and will defer to the inherited [ScrollbarTheme].
|
||||
/// When using the desktop platform, if the [Scrollable] widget scrolls in the
|
||||
/// [Axis.vertical], a [Scrollbar] is applied.
|
||||
///
|
||||
/// See also:
|
||||
///
|
||||
@ -721,11 +716,7 @@ class MaterialScrollBehavior extends ScrollBehavior {
|
||||
// the base class as well.
|
||||
switch (axisDirectionToAxis(details.direction)) {
|
||||
case Axis.horizontal:
|
||||
return Scrollbar(
|
||||
isAlwaysShown: true,
|
||||
controller: details.controller,
|
||||
child: child,
|
||||
);
|
||||
return child;
|
||||
case Axis.vertical:
|
||||
switch (getPlatform(context)) {
|
||||
case TargetPlatform.linux:
|
||||
|
||||
@ -1308,16 +1308,13 @@ class _TabBarState extends State<TabBar> {
|
||||
|
||||
if (widget.isScrollable) {
|
||||
_scrollController ??= _TabBarScrollController(this);
|
||||
tabBar = ScrollConfiguration(
|
||||
behavior: ScrollConfiguration.of(context).copyWith(scrollbars: false),
|
||||
child: SingleChildScrollView(
|
||||
dragStartBehavior: widget.dragStartBehavior,
|
||||
scrollDirection: Axis.horizontal,
|
||||
controller: _scrollController,
|
||||
padding: widget.padding,
|
||||
physics: widget.physics,
|
||||
child: tabBar,
|
||||
),
|
||||
tabBar = SingleChildScrollView(
|
||||
dragStartBehavior: widget.dragStartBehavior,
|
||||
scrollDirection: Axis.horizontal,
|
||||
controller: _scrollController,
|
||||
padding: widget.padding,
|
||||
physics: widget.physics,
|
||||
child: tabBar,
|
||||
);
|
||||
} else if (widget.padding != null) {
|
||||
tabBar = Padding(
|
||||
|
||||
@ -1557,20 +1557,4 @@ void main() {
|
||||
),
|
||||
);
|
||||
});
|
||||
|
||||
testWidgets('MaterialScrollBehavior applies always shown Scrollbar to horizontal scrollables', (WidgetTester tester) async {
|
||||
final ScrollController controller = ScrollController();
|
||||
await tester.pumpWidget(MaterialApp(
|
||||
home: SingleChildScrollView(
|
||||
scrollDirection: Axis.horizontal,
|
||||
controller: controller,
|
||||
child: const SizedBox(
|
||||
width: 4000.0,
|
||||
height: 4000.0,
|
||||
),
|
||||
),
|
||||
));
|
||||
await tester.pumpAndSettle();
|
||||
expect(find.byType(Scrollbar), paints..rect());
|
||||
});
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user