From 6408ce865be897a8ff99d8863faacb399fb7fbd8 Mon Sep 17 00:00:00 2001 From: shirne Date: Sat, 23 Dec 2023 14:53:55 +0800 Subject: [PATCH] add actionAlignment for dropdown --- CHANGELOG.md | 3 +++ example/lib/custom_page.dart | 10 ++++---- example/pubspec.lock | 28 +++++++++++------------ example/windows/runner/flutter_window.cpp | 5 ++++ lib/src/dropdown.dart | 4 ++++ lib/src/my_dialog.dart | 2 ++ pubspec.lock | 26 ++++++++++----------- pubspec.yaml | 7 +++--- 8 files changed, 50 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cb7293f..1bfd26c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## [4.7.2] + * add actionAlignment for dropdown + ## [4.7.1] * Improve dropdown * fix EntryController.close diff --git a/example/lib/custom_page.dart b/example/lib/custom_page.dart index af652bd..6e1e0c3 100644 --- a/example/lib/custom_page.dart +++ b/example/lib/custom_page.dart @@ -34,11 +34,11 @@ class _CustomPageState extends State { shape: const RoundedRectangleBorder(), foregroundColor: Colors.black87, ), - alertStyle: const ModalStyle( - actionsPadding: EdgeInsets.all(8), - expandedAction: true, - buttonPadding: EdgeInsets.symmetric(vertical: 4), - ), + // alertStyle: const ModalStyle( + // actionsPadding: EdgeInsets.all(8), + // expandedAction: true, + // buttonPadding: EdgeInsets.symmetric(vertical: 4), + // ), modalStyle: ModalStyle.separated( buttonPadding: const EdgeInsets.symmetric(vertical: 4), ), diff --git a/example/pubspec.lock b/example/pubspec.lock index 68c00da..dc33cbc 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -45,10 +45,10 @@ packages: dependency: transitive description: name: collection - sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a url: "https://pub.flutter-io.cn" source: hosted - version: "1.17.2" + version: "1.18.0" combined_animation: dependency: transitive description: @@ -140,10 +140,10 @@ packages: dependency: transitive description: name: meta - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e url: "https://pub.flutter-io.cn" source: hosted - version: "1.9.1" + version: "1.10.0" path: dependency: transitive description: @@ -166,7 +166,7 @@ packages: path: ".." relative: true source: path - version: "4.7.0" + version: "4.7.2" sky_engine: dependency: transitive description: flutter @@ -184,18 +184,18 @@ packages: dependency: transitive description: name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" url: "https://pub.flutter-io.cn" source: hosted - version: "1.11.0" + version: "1.11.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 url: "https://pub.flutter-io.cn" source: hosted - version: "2.1.1" + version: "2.1.2" string_scanner: dependency: transitive description: @@ -216,10 +216,10 @@ packages: dependency: transitive description: name: test_api - sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" url: "https://pub.flutter-io.cn" source: hosted - version: "0.6.0" + version: "0.6.1" typed_data: dependency: transitive description: @@ -240,10 +240,10 @@ packages: dependency: transitive description: name: web - sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 url: "https://pub.flutter-io.cn" source: hosted - version: "0.1.4-beta" + version: "0.3.0" xml: dependency: transitive description: @@ -253,4 +253,4 @@ packages: source: hosted version: "6.1.0" sdks: - dart: ">=3.1.0-185.0.dev <4.0.0" + dart: ">=3.2.0-194.0.dev <4.0.0" diff --git a/example/windows/runner/flutter_window.cpp b/example/windows/runner/flutter_window.cpp index b25e363..955ee30 100644 --- a/example/windows/runner/flutter_window.cpp +++ b/example/windows/runner/flutter_window.cpp @@ -31,6 +31,11 @@ bool FlutterWindow::OnCreate() { this->Show(); }); + // Flutter can complete the first frame before the "show window" callback is + // registered. The following call ensures a frame is pending to ensure the + // window is shown. It is a no-op if the first frame hasn't completed yet. + flutter_controller_->ForceRedraw(); + return true; } diff --git a/lib/src/dropdown.dart b/lib/src/dropdown.dart index 41fdce4..ef480e4 100644 --- a/lib/src/dropdown.dart +++ b/lib/src/dropdown.dart @@ -6,6 +6,7 @@ class DropdownWidget extends StatefulWidget { super.key, required this.origRect, required this.actions, + this.actionAlignment, this.padding = EdgeInsets.zero, this.position, this.elevation = 3.0, @@ -14,6 +15,7 @@ class DropdownWidget extends StatefulWidget { final double elevation; final Rect origRect; final List actions; + final CrossAxisAlignment? actionAlignment; final EdgeInsets padding; final Set? position; @@ -54,6 +56,8 @@ class _DropdownWidgetState extends State { constraints: BoxConstraints(minWidth: widget.origRect.width), child: Column( mainAxisSize: MainAxisSize.min, + crossAxisAlignment: + widget.actionAlignment ?? CrossAxisAlignment.center, children: widget.actions, ), ), diff --git a/lib/src/my_dialog.dart b/lib/src/my_dialog.dart index 1450a66..479cf9d 100644 --- a/lib/src/my_dialog.dart +++ b/lib/src/my_dialog.dart @@ -838,6 +838,7 @@ class ShirneDialog { EntryController dropdown( List actions, { required Rect origRect, + CrossAxisAlignment? actionAlignment, double? elevation, HitTestBehavior? backdropBehavior, Color? backdropColor, @@ -853,6 +854,7 @@ class ShirneDialog { origRect: origRect, padding: padding ?? const EdgeInsets.all(8), position: position, + actionAlignment: actionAlignment, elevation: elevation ?? 4.0, ), wrapperBuilder: (context, child) => GestureDetector( diff --git a/pubspec.lock b/pubspec.lock index bd48a51..1695639 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -37,10 +37,10 @@ packages: dependency: transitive description: name: collection - sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a url: "https://pub.flutter-io.cn" source: hosted - version: "1.17.2" + version: "1.18.0" combined_animation: dependency: "direct main" description: @@ -103,10 +103,10 @@ packages: dependency: transitive description: name: meta - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e url: "https://pub.flutter-io.cn" source: hosted - version: "1.9.1" + version: "1.10.0" path: dependency: transitive description: @@ -132,18 +132,18 @@ packages: dependency: transitive description: name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" url: "https://pub.flutter-io.cn" source: hosted - version: "1.11.0" + version: "1.11.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 url: "https://pub.flutter-io.cn" source: hosted - version: "2.1.1" + version: "2.1.2" string_scanner: dependency: transitive description: @@ -164,10 +164,10 @@ packages: dependency: transitive description: name: test_api - sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" url: "https://pub.flutter-io.cn" source: hosted - version: "0.6.0" + version: "0.6.1" vector_math: dependency: transitive description: @@ -180,9 +180,9 @@ packages: dependency: transitive description: name: web - sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 url: "https://pub.flutter-io.cn" source: hosted - version: "0.1.4-beta" + version: "0.3.0" sdks: - dart: ">=3.1.0-185.0.dev <4.0.0" + dart: ">=3.2.0-194.0.dev <4.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index ace96e0..03a6bcd 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: shirne_dialog description: A flutter package to use alert, toast, popup, snack, imagePreview, loading etc. with customizable style in anywhere. -version: 4.7.1 +version: 4.7.2 homepage: https://shirne.github.io/dialog/ repository: https://github.com/shirne/shirne_dialog screenshots: @@ -11,6 +11,7 @@ topics: - toast - alert - comfirm + - dropdown environment: sdk: ">=2.17.0 <4.0.0" @@ -18,13 +19,13 @@ environment: dependencies: flutter: sdk: flutter - combined_animation: ^0.3.1 + combined_animation: ">=0.3.1" dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^2.0.1 + flutter_lints: flutter: fonts: