mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
### Flutter fade https://github.com/user-attachments/assets/0cfd3759-3e8d-4e5e-af55-20dfa1494bb5 ### Native iOS fade https://github.com/user-attachments/assets/ce8799d8-78bd-49e7-9d64-bb818fc6667e ### Flutter scroll https://github.com/user-attachments/assets/04291449-147c-4b8c-900e-c6e3989ef0e8 ### Native iOS scroll https://github.com/user-attachments/assets/a5917e64-6e67-45f0-a580-2fda80d16c32 <details> <summary>Sample code</summary> ```dart import 'package:flutter/cupertino.dart'; void main() => runApp(const CollapsibleApp()); class CollapsibleApp extends StatelessWidget { const CollapsibleApp({super.key}); @override Widget build(BuildContext context) { return CupertinoApp( home: CupertinoPageScaffold( backgroundColor: CupertinoColors.systemGroupedBackground, child: CustomScrollView( slivers: [ CupertinoSliverNavigationBar( stretch: true, largeTitle: Text('Lists'), leading: CupertinoButton( alignment: Alignment.centerLeft, padding: EdgeInsets.zero, child: const Text('Edit'), onPressed: () {}, ), trailing: CupertinoButton( alignment: Alignment.centerRight, padding: EdgeInsets.zero, child: const Text('Add List'), onPressed: () {}, ), ), SliverToBoxAdapter( child: Padding( padding: const EdgeInsets.symmetric(horizontal: 16.0), child: const CollapsibleExample(), ), ), ], ), ), ); } } class CollapsibleExample extends StatefulWidget { const CollapsibleExample({super.key}); @override State<CollapsibleExample> createState() => _CollapsibleExampleState(); } class _CollapsibleExampleState extends State<CollapsibleExample> { @override Widget build(BuildContext context) { return CupertinoCollapsible( title: Text( ' iPhone', style: CupertinoTheme.of(context) .textTheme .navLargeTitleTextStyle .copyWith(fontSize: 21, fontWeight: FontWeight.w600), ), child: CupertinoListSection.insetGrouped( margin: EdgeInsets.symmetric(horizontal: 0.0), children: <CupertinoListTile>[ CupertinoListTile( title: const Text('All iPhone'), leading: Icon( CupertinoIcons.person_3, size: 30.0, ), trailing: const CupertinoListTileChevron(), additionalInfo: const Text('6'), onTap: () {}), CupertinoListTile( title: const Text('Friends'), leading: Icon(CupertinoIcons.person_2), trailing: const CupertinoListTileChevron(), additionalInfo: const Text('1'), onTap: () {}), CupertinoListTile( title: const Text('Work'), leading: Icon(CupertinoIcons.person_2), trailing: const CupertinoListTileChevron(), additionalInfo: const Text('0'), onTap: () {}), ], ), ); } } ``` </details> Fixes https://github.com/flutter/flutter/issues/153937
76 lines
3.0 KiB
Dart
76 lines
3.0 KiB
Dart
// Copyright 2014 The Flutter Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
/// Flutter widgets implementing the current iOS design language.
|
|
///
|
|
/// To use, import `package:flutter/cupertino.dart`.
|
|
///
|
|
/// This library is designed for apps that run on iOS. For apps that may also
|
|
/// run on other operating systems, we encourage use of other widgets, for
|
|
/// example the [Material
|
|
/// Design](https://docs.flutter.dev/ui/widgets/material) set.
|
|
///
|
|
/// {@youtube 560 315 https://www.youtube.com/watch?v=3PdUaidHc-E}
|
|
///
|
|
/// See also:
|
|
///
|
|
/// * [flutter.dev/widgets/cupertino](https://docs.flutter.dev/ui/widgets/cupertino)
|
|
/// for a catalog of all Cupertino widgets.
|
|
/// * [flutter.dev/widgets](https://docs.flutter.dev/ui/widgets)
|
|
/// for a catalog of commonly-used Flutter widgets.
|
|
|
|
library cupertino;
|
|
|
|
export 'src/cupertino/activity_indicator.dart';
|
|
export 'src/cupertino/adaptive_text_selection_toolbar.dart';
|
|
export 'src/cupertino/app.dart';
|
|
export 'src/cupertino/bottom_tab_bar.dart';
|
|
export 'src/cupertino/button.dart';
|
|
export 'src/cupertino/checkbox.dart';
|
|
export 'src/cupertino/colors.dart';
|
|
export 'src/cupertino/constants.dart';
|
|
export 'src/cupertino/context_menu.dart';
|
|
export 'src/cupertino/context_menu_action.dart';
|
|
export 'src/cupertino/date_picker.dart';
|
|
export 'src/cupertino/debug.dart';
|
|
export 'src/cupertino/desktop_text_selection.dart';
|
|
export 'src/cupertino/desktop_text_selection_toolbar.dart';
|
|
export 'src/cupertino/desktop_text_selection_toolbar_button.dart';
|
|
export 'src/cupertino/dialog.dart';
|
|
export 'src/cupertino/expansion_tile.dart';
|
|
export 'src/cupertino/form_row.dart';
|
|
export 'src/cupertino/form_section.dart';
|
|
export 'src/cupertino/icon_theme_data.dart';
|
|
export 'src/cupertino/icons.dart';
|
|
export 'src/cupertino/interface_level.dart';
|
|
export 'src/cupertino/list_section.dart';
|
|
export 'src/cupertino/list_tile.dart';
|
|
export 'src/cupertino/localizations.dart';
|
|
export 'src/cupertino/magnifier.dart';
|
|
export 'src/cupertino/nav_bar.dart';
|
|
export 'src/cupertino/page_scaffold.dart';
|
|
export 'src/cupertino/picker.dart';
|
|
export 'src/cupertino/radio.dart';
|
|
export 'src/cupertino/refresh.dart';
|
|
export 'src/cupertino/route.dart';
|
|
export 'src/cupertino/scrollbar.dart';
|
|
export 'src/cupertino/search_field.dart';
|
|
export 'src/cupertino/segmented_control.dart';
|
|
export 'src/cupertino/sheet.dart';
|
|
export 'src/cupertino/slider.dart';
|
|
export 'src/cupertino/sliding_segmented_control.dart';
|
|
export 'src/cupertino/spell_check_suggestions_toolbar.dart';
|
|
export 'src/cupertino/switch.dart';
|
|
export 'src/cupertino/tab_scaffold.dart';
|
|
export 'src/cupertino/tab_view.dart';
|
|
export 'src/cupertino/text_field.dart';
|
|
export 'src/cupertino/text_form_field_row.dart';
|
|
export 'src/cupertino/text_selection.dart';
|
|
export 'src/cupertino/text_selection_toolbar.dart';
|
|
export 'src/cupertino/text_selection_toolbar_button.dart';
|
|
export 'src/cupertino/text_theme.dart';
|
|
export 'src/cupertino/theme.dart';
|
|
export 'src/cupertino/thumb_painter.dart';
|
|
export 'widgets.dart';
|