-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Add bottom to CupertinoSliverNavigationBar #155841
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
I'm wondering if there is a way to get the intrinsic height of the drawer before building it. If that is possible, then we won't need a Also considering making a widget (say a |
|
Implement CupertinoSearchTextField opacity fade on scroll should make the video in the automatic case look much nicer :) |
|
Also looking for recommendations on naming. |
MitchellGoodwin
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good so far at a glance. I'd recommend adding an example to the PR early. It makes it easier to review.
MitchellGoodwin
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall approach LGTM, as far as I know related to scrolling.
Piinks
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM , except I noticed in the video for automatic mode the search icon sticks out. Is this something we can handle? Or is it in another PR?
(I know you have several related PRs out, this is just the first I am catching up on 🙂 )
Ah, yes. That should be fixed by #155025. |
Awesome! I will review that one next! 😀 |
Co-authored-by: Kate Lovett <[email protected]>
Co-authored-by: Kate Lovett <[email protected]>
Fixes [Support search box inside large title nav bar](flutter#18103) Part of [Support segmented controls in nav bars and double row nav bars](flutter#10469) ## None mode (Current default) https://github.com/user-attachments/assets/d798314e-940f-4311-9a9a-fe999c65f280 ## Always mode https://github.com/user-attachments/assets/950a85aa-8ca2-42ea-bf8b-3cb8f95e616e ## Automatic mode https://github.com/user-attachments/assets/c7c7240b-d493-4036-a987-30f61d02bac3 ## With CupertinoSlidingSegmentedControl https://github.com/user-attachments/assets/59f4aec4-8d9c-4223-915b-97b73cb25dc8 <details> <summary>Sample Code</summary> ```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. import 'package:flutter/cupertino.dart'; /// Flutter code sample for [CupertinoSliverNavigationBar]. void main() => runApp(const SliverNavBarApp()); class SliverNavBarApp extends StatelessWidget { const SliverNavBarApp({super.key}); @OverRide Widget build(BuildContext context) { return const CupertinoApp( theme: CupertinoThemeData(brightness: Brightness.light), home: SliverNavBarExample(), ); } } class SliverNavBarExample extends StatelessWidget { const SliverNavBarExample({super.key}); @OverRide Widget build(BuildContext context) { return const CupertinoPageScaffold( // A ScrollView that creates custom scroll effects using slivers. child: SafeArea( child: CustomScrollView( // A list of sliver widgets. slivers: <Widget>[ CupertinoSliverNavigationBar( leading: SizedBox( width: 100, child: Row( children: [ Icon(CupertinoIcons.back), Text( 'Lists', style: TextStyle(color: CupertinoColors.activeBlue), ), ], ), ), trailing: Icon(CupertinoIcons.plus), largeTitle: Text('iPhone'), // Change to desired mode. drawerMode: NavigationDrawerMode.none, drawer: Padding( padding: EdgeInsets.fromLTRB(8.0, 0.0, 8.0, 16.0), child: CupertinoSearchTextField(), ), ), SliverFillRemaining( child: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: <Widget>[ Text('Drag me up', textAlign: TextAlign.center), ], ), ), ], ), ), ); } } ``` </details>
Fixes Support search box inside large title nav bar
Part of Support segmented controls in nav bars and double row nav bars
None mode (Current default)
none.mode.mov
Always mode
always.mode.mov
Automatic mode
automatic.mode.mov
With CupertinoSlidingSegmentedControl
seg.control.mov
Sample Code
Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.