leancodepl / leancodepl/dashed_line

Taking actual visible space

Open
#2 1 comment 0 reactions 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.