Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

bug: `BottomAppBar` custom margins break `NotchShape` calculation due to coordinate offsets

Aperta
#6,986 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
flutter, python
Ambito
frontend, mobile

Direzione di ricerca

Start by tracing the Python BottomAppBar and notch shape bindings into the Flutter handler that calculates the notch path; the issue names no source files or tests. Reproduce the supplied example and inspect how custom margins affect the guest rectangle and cutout coordinates. Done means the notch stays aligned with the floating action button when the bar has custom margins, with offset adjustment available through the bindings.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug
Duplicate Check
Describe the bug

When configuring a BottomAppBar with custom spatial styling (such as adjusting outer margins/paddings or wrapping its internal contents inside a padded container to make a modern "floating capsule" navigation bar), the underlying Flutter NotchShape engine fails to align the cutout coordinates properly.

Because Flet relies entirely on fixed enum declarations (ft.NotchShape.CIRCULAR_RECTANGLE) or rigid configuration wrappers (ft.AutomaticNotchShape), python developers have no mechanism to pass custom math offsets (such as adjusting dxOffset or dyOffset) or shifting guest coordinate bounds inside the shape path calculation. As a result, adding margins to the bar permanently misaligns or deletes the cutout relative to a docked FloatingActionButton's position.

Code sample
Code
import flet as ft


def main(page: ft.Page) -> None:
    page.title = "Notch Shape Example"

    page.bottom_appbar = ft.BottomAppBar(
        content=ft.Row(
            controls=[
                ft.IconButton(ft.Icons.HOME, icon_color="#006A6A", icon_size=32),
                ft.IconButton(
                    ft.Icons.ACCOUNT_BOX,
                    icon_color="#006A6A",
                    icon_size=32,
                ),
            ],
            alignment=ft.MainAxisAlignment.SPACE_BETWEEN,
        ),
        bgcolor=ft.Colors.WHITE,
        border_radius=42,
        shape=ft.CircularRectangleNotchShape(),
        # To make the bottom bar flay in the bottom of the screen
        margin=ft.Margin.only(left=40, right=40, bottom=28),
        padding=ft.Padding.only(left=14, right=14, top=10),
        height=70,
        # notch_margin=20
    )
    page.floating_action_button = ft.FloatingActionButton(
        icon=ft.Icons.ADD,
        shape=ft.CircleBorder(),
        bgcolor="#006A6A",
        on_click=lambda _: print("Floating"),
        elevation=3,
    )
    page.floating_action_button_location = ft.FloatingActionButtonLocation.CENTER_DOCKED

    page.add(ft.SafeArea(content=ft.Column(controls=[ft.Container(expand=True)])))


if __name__ == "__main__":
    ft.run(main)
To reproduce
  1. Execute the provided Flet mini-example code sample.
Expected behavior

Developers should be able to cleanly handle notches on floating navigation elements. There should be a built-in mechanism inside Flet's NotchShape
or AutomaticNotchShape bindings to specify raw alignment translation offsets (e.g., properties like dx_offset and dy_offset), allowing the framework to execute a coordinate shift on the guest rect bounds (guest.shift(Offset(dx, dy))) before committing to the layout path generation.

Screenshots / Videos
Captures Image Image
Operating System

Linux

Operating system details

Ubuntu 24 and Android 16

Flet version

1.0.4

Regression

I'm not sure / I don't know

Suggestions

Expose offset adjustment arguments within Flet's notch configuration bindings. Under the hood in the Flutter engine wrapper, these values should translate to shifting the layout rect math properties before calculating the shape path:

// Suggestion for Flutter side handler logic:
final Rect adjustedGuest = guest.shift(Offset(dxOffset, dyOffset));
Logs
Logs
[Paste your logs here]
Additional details

No response

Lingua principale
Python
Stelle
17.4k
Fork
728
Merge medio
1g 10h
PR unite (30g)
55

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di flet-dev/flet

Tutte le issue di flet-dev/flet

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.