feat: add scrollbar
This commit is contained in:
parent
ddf7f73d36
commit
5089ac6bb0
|
@ -175,11 +175,12 @@ class _ListStatefulScaffoldState<T, K>
|
|||
} else if (items.isEmpty) {
|
||||
return EmptyWidget();
|
||||
} else {
|
||||
return ListView.builder(
|
||||
// shrinkWrap: true,
|
||||
controller: _controller,
|
||||
itemCount: 2 * items.length + 1,
|
||||
itemBuilder: _buildItem,
|
||||
return Scrollbar(
|
||||
child: ListView.builder(
|
||||
controller: _controller,
|
||||
itemCount: 2 * items.length + 1,
|
||||
itemBuilder: _buildItem,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -187,12 +188,14 @@ class _ListStatefulScaffoldState<T, K>
|
|||
Widget _buildBody() {
|
||||
switch (Provider.of<ThemeModel>(context).theme) {
|
||||
case AppThemeType.cupertino:
|
||||
return CustomScrollView(
|
||||
controller: _controller,
|
||||
slivers: [
|
||||
CupertinoSliverRefreshControl(onRefresh: _refresh),
|
||||
_buildCupertinoSliver(),
|
||||
],
|
||||
return CupertinoScrollbar(
|
||||
child: CustomScrollView(
|
||||
controller: _controller,
|
||||
slivers: [
|
||||
CupertinoSliverRefreshControl(onRefresh: _refresh),
|
||||
_buildCupertinoSliver(),
|
||||
],
|
||||
),
|
||||
);
|
||||
default:
|
||||
return RefreshIndicator(
|
||||
|
|
|
@ -199,18 +199,12 @@ class _LongListScaffoldState<T, K> extends State<LongListScaffold<T, K>> {
|
|||
payload == null ? null : widget.trailingBuilder(payload.header),
|
||||
),
|
||||
child: SafeArea(
|
||||
child: CustomScrollView(slivers: slivers),
|
||||
child: CupertinoScrollbar(
|
||||
child: CustomScrollView(slivers: slivers),
|
||||
),
|
||||
),
|
||||
);
|
||||
default:
|
||||
List<Widget> slivers = [];
|
||||
if (payload != null) {
|
||||
slivers.add(
|
||||
SliverToBoxAdapter(child: widget.headerBuilder(payload.header)),
|
||||
);
|
||||
}
|
||||
slivers.add(_buildSliver());
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: widget.title,
|
||||
|
@ -220,7 +214,14 @@ class _LongListScaffoldState<T, K> extends State<LongListScaffold<T, K>> {
|
|||
),
|
||||
body: RefreshIndicator(
|
||||
onRefresh: _refresh,
|
||||
child: CustomScrollView(slivers: slivers),
|
||||
child: Scrollbar(
|
||||
child: CustomScrollView(slivers: [
|
||||
if (payload != null)
|
||||
SliverToBoxAdapter(
|
||||
child: widget.headerBuilder(payload.header)),
|
||||
_buildSliver(),
|
||||
]),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ class SingleScaffold extends StatelessWidget {
|
|||
Widget build(BuildContext context) {
|
||||
return CommonScaffold(
|
||||
title: title,
|
||||
body: SingleChildScrollView(child: body),
|
||||
body: Scrollbar(child: SingleChildScrollView(child: body)),
|
||||
trailing: trailing,
|
||||
);
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:git_touch/models/theme.dart';
|
||||
import 'package:git_touch/widgets/link.dart';
|
||||
import 'package:git_touch/widgets/loading.dart';
|
||||
import 'package:primer/primer.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class CommonScaffold extends StatelessWidget {
|
||||
|
@ -55,16 +56,20 @@ class RefreshWrapper extends StatelessWidget {
|
|||
Widget build(BuildContext context) {
|
||||
switch (Provider.of<ThemeModel>(context).theme) {
|
||||
case AppThemeType.cupertino:
|
||||
return CustomScrollView(
|
||||
slivers: <Widget>[
|
||||
CupertinoSliverRefreshControl(onRefresh: onRefresh),
|
||||
SliverToBoxAdapter(child: body),
|
||||
],
|
||||
return CupertinoScrollbar(
|
||||
child: CustomScrollView(
|
||||
slivers: <Widget>[
|
||||
CupertinoSliverRefreshControl(onRefresh: onRefresh),
|
||||
SliverToBoxAdapter(child: body),
|
||||
],
|
||||
),
|
||||
);
|
||||
default:
|
||||
return RefreshIndicator(
|
||||
onRefresh: onRefresh,
|
||||
child: SingleChildScrollView(child: body),
|
||||
child: Scrollbar(
|
||||
child: SingleChildScrollView(child: body),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue