leancodepl / leancodepl/dashed_line
Taking actual visible space
Nobody has claimed this yet.
- Dominant language
- Dart
- Stars
- 25
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Description
First up, this is a really cool package! Thanks for creating it ❤️
Use case
It would be useful if the DashedLine widget was the same size as the visible dashed line instead of the size of the control points.
Proposal
Add option to the DashedLine widget to take up the size that the displayed path will take up.
Current note
I am aware of the note you added to your README, however, I actually think it is somewhat misleading:
Due to how Paths work in Flutter and Skia, the DashedLine widget takes NOT as much space as the dashed line needs, but as much it needs to contain all the control points.
This suggests that this is a limit of the Flutter rendering engine while it is obviously not. You are free to define the size of your render objects however you please.
Implementation
I assume you are using Path.getBounds for the bounds of your DashedLine widget (I have not looked into the implementation).
This, of course, returns the control points. I am not sure if Path.computeMetrics makes figuring out the actual visible bounds any easier, but you can always calculate it yourself if the existing implementation does not provide it for you.
This is clearly possible and probably also fairly trivial (considering the existing work on bezier curves et al.)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the DashedLine widget and the README note about paths. Examine whether Path.getBounds is used for sizing, then investigate Path.computeMetrics or equivalent bounds calculations for the visible dashed path. Done means the widget can optionally size itself to the displayed path rather than its control points.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- dart, flutter
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100