tvolkert / chicago Goto Github PK
View Code? Open in Web Editor NEWThe Chicago widget set for Flutter
License: Apache License 2.0
The Chicago widget set for Flutter
License: Apache License 2.0
I have a list of items that can be selected or not. It affects many aspects of the app. There's a ListView that's used to configure that list of items, so I use a ListViewSelectionController as the source of truth. Unfortunately that ListView isn't always on screen, so sometimes it's not attached, and ListViewSelectionController.isItemSelected asserts that it is attached. So I can't use the ListViewSelectionController as the source of truth.
Side note: it would be great if ListViewSelectionController had an affordance to enumerate the selected items. Currently I have to just loop over the items one by one querying if they're selected, and that seems expensive given how the list is backed.
cace425 introduced the a bug in TextInput
that manifests as the following exception:
Tried to make a child into a parent of itself.
'package:flutter/src/widgets/focus_manager.dart':
Failed assertion: line 1041 pos 12: 'child != this'
Since flutter/flutter#85798, Rollup
is triggering the following assertion:
======== Exception caught by rendering library =====================================================
The following assertion was thrown during paint():
Attempted to create a handle to an already disposed layer: ClipRectLayer#2aefa(handles: 0, clipRect: Rect.fromLTRB(6.0, 22.0, 699.0, 242.0), clipBehavior: Clip.hardEdge).
'package:flutter/src/rendering/layer.dart':
Failed assertion: line 620 pos 7: 'layer?.debugDisposed != true'
Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
https://github.com/flutter/flutter/issues/new?template=2_bug.md
The relevant error-causing widget was:
_RevealBox _RevealBox:file:///Users/tvolkert/project/tvolkert/chicago/lib/src/rollup.dart:204:11
When the exception was thrown, this was the stack:
#2 LayerHandle.layer= (package:flutter/src/rendering/layer.dart:620:7)
#3 ContainerLayer.append (package:flutter/src/rendering/layer.dart:1042:25)
#4 PaintingContext.appendLayer (package:flutter/src/rendering/object.dart:237:21)
#5 PaintingContext.pushLayer (package:flutter/src/rendering/object.dart:395:5)
#6 PaintingContext.pushClipRect (package:flutter/src/rendering/object.dart:454:7)
#7 _RenderRevealBox.paint (package:chicago/src/rollup.dart:278:30)
#8 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
#9 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
#10 RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2794:15)
#11 RenderFlex.paint (package:flutter/src/rendering/flex.dart:1078:7)
#12 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
#13 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
#14 RenderBoxPane.paint (package:chicago/src/box_pane.dart:349:17)
#15 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
#16 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
#17 RenderScrollPane._paintChildren.<anonymous closure> (package:chicago/src/scroll_pane.dart:1769:19)
#18 ClipContext._clipAndPaint (package:flutter/src/painting/clip.dart:30:12)
#19 ClipContext.clipRectAndPaint (package:flutter/src/painting/clip.dart:58:5)
#20 RenderScrollPane._paintChildren (package:chicago/src/scroll_pane.dart:1768:17)
#21 PaintingContext.pushLayer (package:flutter/src/rendering/object.dart:398:12)
#22 PaintingContext.pushClipRect (package:flutter/src/rendering/object.dart:454:7)
#23 RenderScrollPane.paint (package:chicago/src/scroll_pane.dart:1748:13)
#24 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2409:7)
#25 PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:141:11)
#26 PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:100:5)
#27 PipelineOwner.flushPaint (package:flutter/src/rendering/object.dart:979:29)
#28 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:455:19)
#29 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:883:13)
#30 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:319:5)
#31 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1143:15)
#32 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1080:9)
#33 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:996:5)
#37 _invoke (dart:ui/hooks.dart:164:10)
#38 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:262:5)
#39 _drawFrame (dart:ui/hooks.dart:127:31)
(elided 5 frames from class _AssertionError and dart:async)
The following RenderObject was being processed when the exception was fired: _RenderRevealBox#9f570 relayoutBoundary=up3
... needs compositing
... parentData: offset=Offset(0.0, 16.0); flex=null; fit=null (can use size)
... constraints: BoxConstraints(unconstrained)
... size: Size(693.0, 220.0)
RenderObject: _RenderRevealBox#9f570 relayoutBoundary=up3
needs compositing
parentData: offset=Offset(0.0, 16.0); flex=null; fit=null (can use size)
constraints: BoxConstraints(unconstrained)
size: Size(693.0, 220.0)
... child: RenderPadding#1aac6 relayoutBoundary=up4 NEEDS-PAINT
... needs compositing
... parentData: <none> (can use size)
... constraints: BoxConstraints(unconstrained)
... size: Size(693.0, 220.0)
... padding: EdgeInsets(0.0, 4.0, 0.0, 0.0)
... textDirection: ltr
... child: RenderFlex#69cd9 relayoutBoundary=up5 NEEDS-PAINT
... needs compositing
... parentData: offset=Offset(0.0, 4.0) (can use size)
... constraints: BoxConstraints(unconstrained)
... size: Size(693.0, 216.0)
... direction: horizontal
... mainAxisAlignment: start
... mainAxisSize: min
... crossAxisAlignment: center
... textDirection: ltr
... verticalDirection: down
... child 1: RenderConstrainedBox#3eff2 relayoutBoundary=up6
... parentData: offset=Offset(0.0, 108.0); flex=null; fit=null (can use size)
... constraints: BoxConstraints(unconstrained)
... size: Size(7.0, 0.0)
... additionalConstraints: BoxConstraints(w=7.0, 0.0<=h<=Infinity)
... child 2: RenderConstrainedBox#0cbdb relayoutBoundary=up6
... parentData: offset=Offset(7.0, 108.0); flex=null; fit=null (can use size)
... constraints: BoxConstraints(unconstrained)
... size: Size(4.0, 0.0)
... additionalConstraints: BoxConstraints(w=4.0, 0.0<=h<=Infinity)
... child 3: RenderFlex#fc552 relayoutBoundary=up6 NEEDS-PAINT
... needs compositing
... parentData: offset=Offset(11.0, 0.0); flex=null; fit=null (can use size)
... constraints: BoxConstraints(unconstrained)
... size: Size(682.0, 216.0)
... direction: horizontal
... mainAxisAlignment: start
... mainAxisSize: max
... crossAxisAlignment: start
... textDirection: ltr
... verticalDirection: down
... child 1: _RenderBorderLayout#0707b relayoutBoundary=up7 NEEDS-PAINT
... needs compositing
... parentData: offset=Offset(0.0, 0.0); flex=null; fit=null (can use size)
... constraints: BoxConstraints(unconstrained)
... size: Size(188.0, 180.0)
... child 2: RenderConstrainedBox#49a52 relayoutBoundary=up7
... parentData: offset=Offset(188.0, 0.0); flex=null; fit=null (can use size)
... constraints: BoxConstraints(unconstrained)
... size: Size(4.0, 0.0)
... additionalConstraints: BoxConstraints(w=4.0, 0.0<=h<=Infinity)
... child 3: _RenderBorderLayout#6a2c1 relayoutBoundary=up7
... needs compositing
... parentData: offset=Offset(192.0, 0.0); flex=null; fit=null (can use size)
... constraints: BoxConstraints(unconstrained)
... size: Size(165.0, 130.0)
... child 4: RenderConstrainedBox#49e6f relayoutBoundary=up7
... parentData: offset=Offset(357.0, 0.0); flex=null; fit=null (can use size)
... constraints: BoxConstraints(unconstrained)
... size: Size(4.0, 0.0)
... additionalConstraints: BoxConstraints(w=4.0, 0.0<=h<=Infinity)
... child 5: _RenderBorderLayout#f4143 relayoutBoundary=up7
... needs compositing
... parentData: offset=Offset(361.0, 0.0); flex=null; fit=null (can use size)
... constraints: BoxConstraints(unconstrained)
... size: Size(171.0, 216.0)
... child 6: RenderConstrainedBox#fa98f relayoutBoundary=up7
... parentData: offset=Offset(532.0, 0.0); flex=null; fit=null (can use size)
... constraints: BoxConstraints(unconstrained)
... size: Size(4.0, 0.0)
... additionalConstraints: BoxConstraints(w=4.0, 0.0<=h<=Infinity)
... child 7: _RenderBorderLayout#e2686 relayoutBoundary=up7
... needs compositing
... parentData: offset=Offset(536.0, 0.0); flex=null; fit=null (can use size)
... constraints: BoxConstraints(unconstrained)
... size: Size(146.0, 134.0)
====================================================================================================
Observed at 14b1e5e
How to localization and change font
Render objects should not subscribe to anything until they are attached, and should unsubscribe from things when they are detached. RenderListView subscribes when the selectionController property is set, and never unsubscribes.
This means that if you have a ListView that uses a controller, and then you remove it from the rendering, and give the controller to something else, then when the controller changes value, that original ListView will try to dirty itself and throw an exception (because it's disposed and thus should not be mutating itself any more).
table view scroll slow on set view size to 1200 * 700 with 20 columns
hello! when is the update
Hi Todd,
Awesome talk and what a great library.
You might want to point out somewhere what the minimum required version of Flutter for this repo is. I did try the current latest stable (2.2.0), but then there were a lot of errors like:
../lib/src/scroll_bar.dart:826:29: Error: Type 'LongPressDownDetails' not found.
Switching to 2.3.0-1.0.pre solved it for me.
Regards,
Sander
When will the official version be released?
If I tab through https://tvolkert.github.io/ I never get to the list boxes.
In general, tabbing through https://tvolkert.github.io/, I don't get to the check boxes, the link buttons, any of the widgets under "Lists", half of the widgets in the calendar section, up and down arrows down move between radio buttons, and nothing in the Tables section ends up getting focus.
Right now you can shrink a pane to zero, but it really should stop shrinking beyond a specified limit.
In the "lists" section, I can't change the Clock to the Anchor under the List Buttons header.
Expected behavior: The menu closes and I see the Anchor displayed in the button.
Actual behavior: The menu remains open. If I click away, the Clock is still selected.
The same thing happens with the Basic and Color example List Buttons.
Hi
is it possible to change the style of scrollbars? for example colors, radius, not displaying up and down buttons and ..??
The splitter should force the cursor to a <-> cursor while it's active (even if you pull away from the splitter).
Hot reload should cause all the ScrollableListView children to rebuild.
ListViewSelectionController will send notifications any time any of its mutation affordances are invoked, even if the net result does not involve changing anything about the selection.
Any scrollable control does not reach to touchpad gestures on touchpad. I tested it on macOS but I suspect it may malfunction also on other platforms.
When the ListButton is at the bottom of the window, it should unfold up instead of down when the menu is opened.
the table view row raise focus on mouse down
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.