toolbar add multi-line display #229

Add a parameter to Toolbar, it supports multi-line display
pull/231/head
zhaoce 4 years ago
parent 9c3b804d7c
commit f6b04622a2
  1. 25
      lib/widgets/toolbar.dart

@ -909,9 +909,12 @@ class _ClearFormatButtonState extends State<ClearFormatButton> {
} }
class QuillToolbar extends StatefulWidget implements PreferredSizeWidget { class QuillToolbar extends StatefulWidget implements PreferredSizeWidget {
const QuillToolbar( const QuillToolbar({
{required this.children, this.toolBarHeight = 36, Key? key}) required this.children,
: super(key: key); this.toolBarHeight = 36,
Key? key,
this.multiRowsDisplay = false,
}) : super(key: key);
factory QuillToolbar.basic({ factory QuillToolbar.basic({
required QuillController controller, required QuillController controller,
@ -935,12 +938,14 @@ class QuillToolbar extends StatefulWidget implements PreferredSizeWidget {
bool showHorizontalRule = false, bool showHorizontalRule = false,
OnImagePickCallback? onImagePickCallback, OnImagePickCallback? onImagePickCallback,
Key? key, Key? key,
bool multiRowsDisplay = false,
}) { }) {
controller.iconSize = toolbarIconSize; controller.iconSize = toolbarIconSize;
return QuillToolbar( return QuillToolbar(
key: key, key: key,
toolBarHeight: toolbarIconSize * controller.toolbarHeightFactor, toolBarHeight: toolbarIconSize * controller.toolbarHeightFactor,
multiRowsDisplay: multiRowsDisplay,
children: [ children: [
Visibility( Visibility(
visible: showHistory, visible: showHistory,
@ -1131,6 +1136,7 @@ class QuillToolbar extends StatefulWidget implements PreferredSizeWidget {
final List<Widget> children; final List<Widget> children;
final double toolBarHeight; final double toolBarHeight;
final bool multiRowsDisplay;
@override @override
_QuillToolbarState createState() => _QuillToolbarState(); _QuillToolbarState createState() => _QuillToolbarState();
@ -1142,9 +1148,18 @@ class QuillToolbar extends StatefulWidget implements PreferredSizeWidget {
class _QuillToolbarState extends State<QuillToolbar> { class _QuillToolbarState extends State<QuillToolbar> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return widget.multiRowsDisplay
? Container(
color: Theme.of(context).canvasColor,
child: Wrap(
alignment: WrapAlignment.center,
children: widget.children,
),
)
: Container(
padding: const EdgeInsets.symmetric(horizontal: 8), padding: const EdgeInsets.symmetric(horizontal: 8),
constraints: BoxConstraints.tightFor(height: widget.preferredSize.height), constraints:
BoxConstraints.tightFor(height: widget.preferredSize.height),
color: Theme.of(context).canvasColor, color: Theme.of(context).canvasColor,
child: CustomScrollView( child: CustomScrollView(
scrollDirection: Axis.horizontal, scrollDirection: Axis.horizontal,

Loading…
Cancel
Save