buildByCupertinoNative method
build on cupertino mode with native iOS components (cupertino_native package) This is called when baseParam.nativeIOS = true Default implementation falls back to buildByCupertino()
Implementation
@override
Widget buildByCupertinoNative(BuildContext context) {
// Native iOS implementation using cupertino_native package
// This provides true native iOS rendering with CNToolbar
// Enabled when baseParam.nativeIOS = true
// Convert our alignment to CNToolbarMiddleAlignment
final alignment = _toCNToolbarAlignment(valueOf('middleAlignment', middleAlignment));
// Convert BaseToolbarAction to CNToolbarAction for iOS
final leadingActions = valueOf('leading', leading);
final middleActions = valueOf('middle', middle);
final trailingActions = valueOf('trailing', trailing);
List<CNToolbarAction>? cnLeading;
List<CNToolbarAction>? cnMiddle;
List<CNToolbarAction>? cnTrailing;
if (leadingActions != null) {
cnLeading = (leadingActions as List).map((action) => (action as BaseToolbarAction).toCNToolbarAction()).toList();
}
if (middleActions != null) {
cnMiddle = (middleActions as List).map((action) => (action as BaseToolbarAction).toCNToolbarAction()).toList();
}
if (trailingActions != null) {
cnTrailing = (trailingActions as List).map((action) => (action as BaseToolbarAction).toCNToolbarAction()).toList();
}
// Check if this is a search toolbar
final searchConf = valueOf('searchConfig', searchConfig);
if (searchConf != null) {
return CNToolbar.search(
leading: cnLeading,
trailing: cnTrailing,
searchConfig: searchConf,
contextIcon: valueOf('contextIcon', contextIcon),
tint: valueOf('tint', tint),
transparent: valueOf('transparent', transparent),
height: valueOf('height', height),
pillHeight: valueOf('pillHeight', pillHeight),
);
}
return CNToolbar(
leading: cnLeading,
middle: cnMiddle,
trailing: cnTrailing,
tint: valueOf('tint', tint),
transparent: valueOf('transparent', transparent),
height: valueOf('height', height),
pillHeight: valueOf('pillHeight', pillHeight),
middleAlignment: alignment,
);
}