[Request]: share_plus: option to present the iPad share sheet without a popover arrow
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 48/100
Direzione di ricerca
Inizia dal punto di ingresso della presentazione di UIActivityViewController di iOS/macOS in share_plus e verifica come ShareParams.sharePositionOrigin raggiunge UIPopoverPresentationController. Decidi se esporre permittedArrowDirections, l’opzione centrata senza freccia o entrambe, quindi aggiungi test specifici per la piattaforma e documentazione che dimostrino il comportamento selezionato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Plugin
share_plus
Use case
On iPad the share sheet is a popover, and a popover has an arrow pointing at whatever rect was passed as sharePositionOrigin. That is right when the sheet was opened from a visible control. It is wrong whenever there is no such control: a keyboard shortcut, a finished background export, an action whose source has already scrolled away. Any rect passed in those cases is arbitrary, and iPadOS then draws an arrow pointing at a spot the user never touched.
Since 13.3.0 the plugin centres the sheet when no origin is given, which is the correct position — the arrow still points into empty space next to it.
There is no way around this from application code: ShareParams exposes sharePositionOrigin and nothing else that reaches UIPopoverPresentationController, and permittedArrowDirections does not appear anywhere in the iOS plugin. Other share packages on pub.dev wrap the same UIActivityViewController, so they inherit the same behaviour.
This was previously requested in #359 (July 2021), which the stale bot closed in June 2022 without any human reply; that issue is now locked, so I could not comment there. flutter/flutter#74552 asks for the same thing and is still open. Both name the same reference: the export sheet in Procreate, which is centred and arrow-free.
Proposal
Expose the arrow configuration, ignored on every platform other than iOS/macOS. Two parts that can be judged separately:
1. Pass permittedArrowDirections through. Fully documented and mechanical. permittedArrowDirections is settable since iOS 8 and defaults to any; UIPopoverArrowDirection is an OptionSet, so up/down/left/right map one-to-one.
2. An option for "centred, no arrow". This is the part that closes the request, and the implementation deserves a decision rather than a guess, so here is what I measured on an iPad Air 13-inch (M4) simulator, iPadOS 26.5, presenting a UIActivityViewController exactly as the plugin does:
- An empty option set works. With
popover.permittedArrowDirections = []and a 2×2sourceRectin the centre of the view, the sheet appears centred with no arrow at all, andarrowDirectionreads0afterwards. It is not documented to work, though — Apple describesunknownonly as "The status of the arrow is currently unknown" and says nothing about suppression. sourceItemdoes not help. The docs say that forsourceItem, "In iOS 26 and later, the popover animates from and replaces the specified item" — but that paragraph is aboutUIBarButtonItem/NSToolbarItem. Anchoring to a plainUIView, whichUIPopoverPresentationControllerSourceItemalso accepts, still drew an arrow on iPadOS 26.5 (arrowDirection=2, i.e.down). So the iOS 26 behaviour does not generalise to view items, and Flutter apps have no bar item to anchor to.
I am aware CONTRIBUTING rules out features covering only one platform, and an arrow only exists on iOS and macOS. sharePositionOrigin has exactly the same scope, so there is precedent for a platform-specific parameter here — but I would rather ask than assume. Happy to implement whichever half you consider acceptable.
- Lingua principale
- Dart
- Stelle
- 1.9k
- Fork
- 1.3k
- Merge medio
- 6g 16h
- PR unite (30g)
- 16
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di fluttercommunity/plus_plugins
-
[Bug]: (share_plus) iOS drops the subject when sharing a uriForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertabug triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
fluttercommunity/plus_plugins#3994 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[package_info_plus]: Use Flutter's compile-time build name/number on web instead of version.jsonForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 25/100
fluttercommunity/plus_plugins#3989 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement triage
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
fluttercommunity/plus_plugins#3976 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
fluttercommunity/plus_plugins#3974 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
bug triage
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
fluttercommunity/plus_plugins#3968 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di fluttercommunity/plus_plugins
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
-
Cancelling a response stream subscription leaves the adapter response subscribedForse già presa @kaluli123123 l’ha presa oggi. Apertah: need triage s: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
lollipopkit/flutter_server_box#1640 · 2 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
openfoodfacts/smooth-app#7821 ·
I maintainer di solito rispondono entro 1 giorno
-
[FR] 搜索结果页面 新增 评论数量 显示Apertaenhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
bggRGjQaUbCoE/PiliPlus#3180 ·
I maintainer di solito rispondono entro 1 giorno