TF-2313 Add ScrollbarListView widget

Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit 30c10db3d1833a77fc4f342c2c84fddcdef6d87c)
This commit is contained in:
dab246
2023-11-22 17:32:44 +07:00
committed by Dat H. Pham
parent d14ff9d73c
commit b5e9bdb8d0
3 changed files with 33 additions and 10 deletions
@@ -232,6 +232,7 @@ extension AppColor on Color {
static const messageDialogColor = Color(0xFF8C9CAF);
static const messageDialogHighlightColor = Color(0xFF37383A);
static const labelColor = Color(0xFF71767C);
static const thumbScrollbarColor = Color(0xFFC1C1C1);
static const mapGradientColor = [
[Color(0xFF21D4FD), Color(0xFFB721FF)],
@@ -1,10 +0,0 @@
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
class CustomScrollBehavior extends MaterialScrollBehavior {
@override
Set<PointerDeviceKind> get dragDevices => {
PointerDeviceKind.touch,
PointerDeviceKind.mouse,
};
}
@@ -0,0 +1,32 @@
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:flutter/material.dart';
class ScrollbarListView extends StatelessWidget {
final Widget child;
final ScrollController scrollController;
final ScrollBehavior? scrollBehavior;
const ScrollbarListView({
super.key,
required this.child,
required this.scrollController,
this.scrollBehavior
});
@override
Widget build(BuildContext context) {
return RawScrollbar(
thumbColor: AppColor.thumbScrollbarColor,
radius: const Radius.circular(10.0),
trackRadius: const Radius.circular(10.0),
minThumbLength: 70,
minOverscrollLength: 70,
controller: scrollController,
child: ScrollConfiguration(
behavior: scrollBehavior ?? ScrollConfiguration.of(context).copyWith(scrollbars: false),
child: child,
),
);
}
}