Kaynağa Gözat

65a opgelost: loginpagina niet meer links afgeknipt

Oorzaak: de Stack op de Login-pagina heeft maar een kind, dus de Column
eronder krijgt losse breedtebeperkingen en wordt precies zo breed als zijn
breedste kind (twee Containers van 200px). De pagina-Column was daardoor 200
van de 393px breed en stond links tegen de rand; de afgeronde hoeken van de
invoervelden vielen weg.

Fix: op die buitenste Column Alignment X=0 / Y=-1 plus Cross Axis Alignment
center. Export: Align(alignment: AlignmentDirectional(0.0, -1.0), child:
Column(... crossAxisAlignment: center)). dart analyze 0 errors, en op een
profile-build op de telefoon-AVD visueel bevestigd.

Let op: crossAxisAlignment alleen doet hier niets -- de Column heeft geen
overtollige breedte. De Align eromheen doet het werk. Vastgelegd in CLAUDE.md,
want dit Stack-met-een-kind-patroon kan elders ook voorkomen.

Restpunt voor Bob: de velden zijn nog steeds vast 200px breed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob 12 saat önce
ebeveyn
işleme
a54e6d3013
2 değiştirilmiş dosya ile 34 ekleme ve 7 silme
  1. 16 0
      CLAUDE.md
  2. 18 7
      TASKS.md

+ 16 - 0
CLAUDE.md

@@ -2300,6 +2300,22 @@ de ∞) en typ gewoon het getal; `ctrl+a` is niet nodig als het veld leeg is. Ee
 klik op de ∞ zelf doet niets. Commit daarna met een klik op een **label**, niet
 op het bind-icoontje ernaast — dat opent de Set-from-Variable-dialoog.
 
+**Alles op een pagina plakt links tegen de rand: kijk of er een `Stack` met maar
+ÉÉN kind in zit.** Gevonden 2026-09-19 op de Login-pagina. Een `Stack` geeft zijn
+niet-gepositioneerde kinderen **losse** breedtebeperkingen, dus de `Column`
+eronder wordt precies zo breed als zijn breedste kind — hier twee `Container`s
+van 200 px. De pagina-Column was daardoor 200 van de 393 px breed en stond links;
+de invoervelden raakten de schermrand en hun afgeronde hoek viel weg.
+⚠️ **`Cross Axis Alignment = center` op die Column lost dit NIET op** — er ís geen
+overtollige breedte om in te centreren, dus je klikt en er gebeurt zichtbaar
+niets (makkelijk te verwarren met een niet-landende klik). **Wat wél werkt: de
+sectie `Alignment` op diezelfde Column, X=0 / Y=-1** (het bovenste-midden vakje
+van het 3×3-raster). Dat genereert een `Align(alignment:
+AlignmentDirectional(0.0, -1.0))` eromheen en centreert het blok wel.
+Herkenbaar in de export: een `Stack(children: [ <één widget> ])` zonder
+`Positioned`. Zo'n Stack is verder zinloos maar ongevaarlijk; laat 'm staan en
+regel de uitlijning met `Align`.
+
 **Een `Wrap` waarvan elk kind tóch op een eigen regel staat: kijk naar de
 Alignment van het kind, niet naar de breedte van de ouder.** Bevestigd
 2026-09-16 (P2-34, `HorecagelegenheidoverzichtKaart`): de labels bleven ook op

+ 18 - 7
TASKS.md

@@ -21,7 +21,7 @@ oppakken.
 |---|---|---|
 | ~~88B~~ | Pagina "Mijn aanmeldingen" | ⚠️ **Al geclaimd** door de sessie 'taken-B1-B7' — niet oppakken |
 | **98** | "Zet in mijn agenda"-knop op een evenement (`add_2_calendar`) | Claude — **BEZIG** (sessie 2026-09-19). Blokkeert op Drupal-deel bij Bob, zie 98A |
-| **65** | Release-build doorloop | ✅ **Uitgelogde deel af 2026-09-19** (0 crashes; 5 nieuwe bevindingen 65a-65e). Rest = ingelogd + Xiaomi → Bob |
+| **65** | Release-build doorloop | ✅ **Uitgelogde deel af 2026-09-19** (0 crashes; 65a opgelost, 65b-65e open). Rest = ingelogd + Xiaomi → Bob |
 | ~~P2-24 B~~ | Categoriedropdown horeca-overzicht, tab-bewust | ⛔ **Geblokkeerd op Drupal — verplaatst naar Bob**, zie P2-24 B hieronder (gemeten 2026-09-19) |
 | **G0.6** | Play-screenshots schieten | Browserloos op beide AVD's, ±10 min — zeg het en het gebeurt |
 
@@ -452,12 +452,23 @@ netjes** (All/Today/Weekend/This week, Go Out/Cityactivities/Culture & Info).
 
 **🔴 Nieuwe bevindingen uit deze doorloop — allemaal cosmetisch/UX, geen crash:**
 
-- **65a · De loginpagina is links afgeknipt en niet uitgelijnd.** De witte velden
-  *E-mailadres* en *Wachtwoord* beginnen links ván x=0 (afgeronde hoek valt weg),
-  "Nog geen account? Registreren" raakt de schermrand, en het hele formulier
-  staat links terwijl de rechterhelft leeg blijft. Op een P0-scherm is dat het
-  meest zichtbare punt van de hele doorloop. Screenshot: `scratchpad/`-map van
-  de sessie.
+- **✅ 65a · Loginpagina links afgeknipt — OPGELOST 2026-09-19 (Claude).** De
+  witte velden begonnen op x=0 (afgeronde hoek viel weg) en het hele formulier
+  stond links terwijl de rechterhelft leeg bleef. *Oorzaak:* de `Stack` op deze
+  pagina heeft maar **één** kind, dus de `Column` eronder krijgt losse
+  breedtebeperkingen en wordt precies zo breed als zijn breedste kind — de twee
+  `Container`s van 200 px. De pagina-`Column` was dus 200 van de 393 px breed en
+  stond links. *Fix:* op die buitenste `Column` **Alignment X=0, Y=-1**
+  (top-center) plus **Cross Axis Alignment = center**. Export:
+  `Align(alignment: AlignmentDirectional(0.0, -1.0), child: Column(…
+  crossAxisAlignment: CrossAxisAlignment.center))`. `dart analyze` 0 errors.
+  ⚠️ **Let op — `crossAxisAlignment` alléén doet hier NIETS**, want de Column
+  heeft geen overtollige breedte om in te centreren; de `Align` eromheen is wat
+  het werk doet. Ditzelfde patroon (Stack met één kind → alles plakt links) kan
+  elders in het project ook voorkomen.
+  *Restpunt, ontwerpkeuze voor Bob:* de invoervelden zijn nog steeds vast
+  **200 px** breed, dus op een telefoon ruim een halve schermbreedte. Nu netjes
+  gecentreerd, maar breder (of `double.infinity` met padding) zou prettiger zijn.
 - **65b · Op `HorecagelegenheidCurrent` schuift de header naar links en raakt de
   hamburgerknop de schermrand.** Gemeten met `get_ui_tree`: knopcentrum op
   **x=53** (elders op x=271 resp. x=340), dus de knop steekt links buiten beeld.