From 58f400482bdf979b4b7a70f010e6808a86cecc9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Apitzsch?= Date: Thu, 30 Oct 2025 10:13:37 +0100 Subject: [PATCH 1/3] Fix alignment and padding for RTL-language --- lib/widgets/question_inputs/list_input.dart | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lib/widgets/question_inputs/list_input.dart b/lib/widgets/question_inputs/list_input.dart index 995e33fd..ca5168e8 100644 --- a/lib/widgets/question_inputs/list_input.dart +++ b/lib/widgets/question_inputs/list_input.dart @@ -132,7 +132,6 @@ class _ListInputItemState extends State with SingleTickerProvider child: Text( semanticsLabel: '${widget.label} - ${widget.description ?? ''}', widget.label, - textAlign: TextAlign.left, ), ), ), @@ -169,10 +168,7 @@ class _ListInputItemState extends State with SingleTickerProvider // HeroViewer cannot be wrapped around since the returned error widget // represents a different widget wherefore the hero transition would fail. child: Padding( - padding: EdgeInsets.fromLTRB( - 0, - widget.imagePadding, - widget.imagePadding, + padding: EdgeInsets.all( widget.imagePadding, ), child: ClipRRect( From 02b45be327c4d12949ac741783587a7064ee147b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Apitzsch?= Date: Wed, 5 Nov 2025 11:33:26 +0100 Subject: [PATCH 2/3] Fix further alignments --- lib/screens/onboarding.dart | 7 ++----- lib/widgets/map_overlay/map_overlay.dart | 4 +--- .../question_dialog/question_text_header.dart | 2 +- lib/widgets/question_inputs/list_input.dart | 12 ++++++------ 4 files changed, 10 insertions(+), 15 deletions(-) diff --git a/lib/screens/onboarding.dart b/lib/screens/onboarding.dart index ada0d233..b7fee475 100644 --- a/lib/screens/onboarding.dart +++ b/lib/screens/onboarding.dart @@ -96,7 +96,7 @@ class OnboardingScreen extends View { foregroundColor: Colors.white, minimumSize: const Size(150, 36), elevation: 0.0, - padding: const EdgeInsets.only(left: 14.0, right: 8.0), + padding: const EdgeInsetsDirectional.only(start: 14.0, end: 8.0), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(12.0), ), @@ -210,10 +210,7 @@ class OnboardingPage extends StatelessWidget { Flexible( flex: 12, child: Padding( - padding: const EdgeInsets.only( - left: 40.0, - right: 40.0, - ), + padding: const EdgeInsets.symmetric(horizontal: 40), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ diff --git a/lib/widgets/map_overlay/map_overlay.dart b/lib/widgets/map_overlay/map_overlay.dart index 75b00431..099bbd78 100644 --- a/lib/widgets/map_overlay/map_overlay.dart +++ b/lib/widgets/map_overlay/map_overlay.dart @@ -65,9 +65,7 @@ class MapOverlay extends ViewFragment { sortKey: const OrdinalSortKey(2.0), child: AttributionText( alignment: TextAlign.left, - padding: const EdgeInsets.symmetric( - horizontal: 10, - ), + padding: const EdgeInsets.symmetric(horizontal: 10), children: [ AttributionTextPart( AppLocalizations.of(context)!.osmAttributionText, diff --git a/lib/widgets/question_dialog/question_text_header.dart b/lib/widgets/question_dialog/question_text_header.dart index 9d3d0e63..3f5d73b3 100644 --- a/lib/widgets/question_dialog/question_text_header.dart +++ b/lib/widgets/question_dialog/question_text_header.dart @@ -138,7 +138,7 @@ class _QuestionTextHeaderState extends State animation: _fillColorAnimation, builder: (context, child) { return Container( - margin: const EdgeInsets.only(left: 10), + margin: const EdgeInsetsDirectional.only(start: 10), padding: const EdgeInsets.all(4), decoration: BoxDecoration( color: _fillColorAnimation.value, diff --git a/lib/widgets/question_inputs/list_input.dart b/lib/widgets/question_inputs/list_input.dart index ca5168e8..6f575f9e 100644 --- a/lib/widgets/question_inputs/list_input.dart +++ b/lib/widgets/question_inputs/list_input.dart @@ -118,10 +118,10 @@ class _ListInputItemState extends State with SingleTickerProvider crossAxisAlignment: CrossAxisAlignment.stretch, children: [ Padding( - padding: const EdgeInsets.only( - left: 16.0, + padding: const EdgeInsetsDirectional.only( + start: 16.0, top: 8.0, - right: 8.0, + end: 8.0, bottom: 8.0, ), child: Semantics( @@ -143,9 +143,9 @@ class _ListInputItemState extends State with SingleTickerProvider child: FadeTransition( opacity: _animation, child: Padding( - padding: const EdgeInsets.only( - left: 16.0, - right: 8.0, + padding: const EdgeInsetsDirectional.only( + start: 16.0, + end: 8.0, bottom: 8.0, ), child: Text( From 2ec8b30905d65262e7376dd7fae9d79332442f5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Apitzsch?= Date: Wed, 5 Nov 2025 15:43:12 +0100 Subject: [PATCH 3/3] Fix alignment on onboarding screen and question summary --- lib/screens/onboarding.dart | 1 + lib/widgets/map_overlay/map_overlay.dart | 2 +- lib/widgets/question_dialog/question_summary.dart | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/screens/onboarding.dart b/lib/screens/onboarding.dart index b7fee475..780b0232 100644 --- a/lib/screens/onboarding.dart +++ b/lib/screens/onboarding.dart @@ -206,6 +206,7 @@ class OnboardingPage extends StatelessWidget { image, fit: BoxFit.fitWidth, excludeFromSemantics: true, + matchTextDirection: true, ), Flexible( flex: 12, diff --git a/lib/widgets/map_overlay/map_overlay.dart b/lib/widgets/map_overlay/map_overlay.dart index 099bbd78..f4ca3073 100644 --- a/lib/widgets/map_overlay/map_overlay.dart +++ b/lib/widgets/map_overlay/map_overlay.dart @@ -64,7 +64,7 @@ class MapOverlay extends ViewFragment { container: true, sortKey: const OrdinalSortKey(2.0), child: AttributionText( - alignment: TextAlign.left, + alignment: TextAlign.start, padding: const EdgeInsets.symmetric(horizontal: 10), children: [ AttributionTextPart( diff --git a/lib/widgets/question_dialog/question_summary.dart b/lib/widgets/question_dialog/question_summary.dart index 8e6ec799..d22815bd 100644 --- a/lib/widgets/question_dialog/question_summary.dart +++ b/lib/widgets/question_dialog/question_summary.dart @@ -108,7 +108,7 @@ class QuestionSummary extends StatelessWidget { Expanded( child: Text( answer, - textAlign: TextAlign.right, + textAlign: TextAlign.end, maxLines: 2, overflow: TextOverflow.ellipsis, ),