Skip to content

fix: Android progress bars show a stray dot at the end - #75

Open
SRWieZ wants to merge 1 commit into
NativePHP:mainfrom
SRWieZ:fix/android-progress-bar-parity
Open

fix: Android progress bars show a stray dot at the end#75
SRWieZ wants to merge 1 commit into
NativePHP:mainfrom
SRWieZ:fix/android-progress-bar-parity

Conversation

@SRWieZ

@SRWieZ SRWieZ commented Aug 24, 2026

Copy link
Copy Markdown
Member

What's wrong

A thin determinate <native:progress-bar> on Android shows a stray dot at its right end. Material3 1.7's LinearProgressIndicator draws an "expressive" stop-indicator dot at the track's end plus a gap between the progress tip and the track — on a thin bar a near-empty value reads as two floating dots and not much else. iOS draws a plain continuous bar.

Minimum repro:

<native:progress-bar :value="0.06" class="w-full" />
<native:progress-bar :value="0.45" class="w-full" />
<native:progress-bar :value="0.9" class="w-full" />

What this does

Determinate bars pass gapSize = 0.dp and an empty drawStopIndicator — a plain continuous bar, matching iOS. Indeterminate bars keep the animated M3 style. Judgment call: if you'd rather keep the M3 expressive look as the Android default, say the word and I'll flip this to an opt-in prop instead. No iOS or PHP changes.

Before / after (Android emulator, API 36, same Blade)

Material3 1.7's LinearProgressIndicator draws an expressive stop
indicator dot at the track's end plus a gap between the progress tip
and the track. On the thin bars this element renders they read as
stray dots at both edges — a near-empty bar shows exactly two dots and
nothing else. iOS's ProgressView draws a plain continuous bar; match
it. Indeterminate bars keep the animated M3 style.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant