Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions example/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ dependencies:
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^3.0.1

flutter:

uses-material-design: true
uses-material-design: true
6 changes: 5 additions & 1 deletion lib/src/custom_border_paint.dart
Original file line number Diff line number Diff line change
Expand Up @@ -39,5 +39,9 @@ class CustomBorderPaint extends CustomPainter {
}

@override
bool shouldRepaint(covariant CustomPainter oldDelegate) => false;
bool shouldRepaint(covariant CustomBorderPaint oldDelegate) {
return oldDelegate.thickness != thickness ||
oldDelegate.radius != radius ||
oldDelegate.gradient != gradient;
}
}
21 changes: 10 additions & 11 deletions lib/src/row_to_column.dart
Original file line number Diff line number Diff line change
Expand Up @@ -22,22 +22,21 @@ class RowToColumn extends StatelessWidget {

@override
Widget build(BuildContext context) {
return ((isColumnToRow ?? false) ? isVertical : !isVertical)
final bool isRow = (isColumnToRow ?? false) ? isVertical : !isVertical;
final Widget layout = isRow
? Row(
mainAxisAlignment:
mainAxisAlignment ?? const Row().mainAxisAlignment,
mainAxisSize: mainAxisSize ?? const Row().mainAxisSize,
crossAxisAlignment:
crossAxisAlignment ?? const Row().crossAxisAlignment,
mainAxisAlignment: mainAxisAlignment ?? MainAxisAlignment.start,
mainAxisSize: mainAxisSize ?? MainAxisSize.max,
crossAxisAlignment: crossAxisAlignment ?? CrossAxisAlignment.center,
children: children,
)
: Column(
mainAxisAlignment:
mainAxisAlignment ?? const Column().mainAxisAlignment,
mainAxisSize: mainAxisSize ?? const Column().mainAxisSize,
crossAxisAlignment:
crossAxisAlignment ?? const Column().crossAxisAlignment,
mainAxisAlignment: mainAxisAlignment ?? MainAxisAlignment.start,
mainAxisSize: mainAxisSize ?? MainAxisSize.max,
crossAxisAlignment: crossAxisAlignment ?? CrossAxisAlignment.center,
children: children,
);

return layout;
}
}
17 changes: 11 additions & 6 deletions lib/src/utils.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,26 @@ class Utils {
required int totalSwitches,
List<double>? customWidths,
required double minWidth}) {
assert(index >= 0 && totalSwitches > 0);
assert(minWidth > 0);

if (customWidths != null && index < customWidths.length) {
return customWidths[index];
}

/// Extra width to prevent overflow and add padding
double extraWidth = 0.10 * totalSwitches;

/// Max screen width
double screenWidth = MediaQuery.of(context).size.width;

/// Returns width per label
///
///s
/// Returns passed minWidth per label if total requested width plus extra width is less than max screen width.
/// Returns calculated width to fit within the max screen width if total requested width plus extra width is more than max screen width.
return customWidths != null
? customWidths[index]
: ((totalSwitches + extraWidth) * minWidth < screenWidth
? minWidth
: screenWidth / (totalSwitches + extraWidth));
return ((totalSwitches + extraWidth) * minWidth < screenWidth)
? minWidth
: screenWidth / (totalSwitches + extraWidth);
}

/// Ignores customHeights if toggle switch is horizontal
Expand Down