Ad

Can't Hide Appbar In Flutter With NestedScrollView

- 1 answer

Widget build(BuildContext context) {
return Scaffold(
  body: NestedScrollView(
    headerSliverBuilder: (context, innerBoxIsScrolled) =>
    SliverAppBar(
    title: Text('hide appbar'),
      centerTitle: true,
      leading: IconButton(
      icon: Icon(Icons.menu),
      onPressed: () {},
      ),
      actions: [
      IconButton(
      icon: Icon(Icons.search),
      onPressed: () {},
      )
      ],
//backgroundColor: Colors.purple,
      flexibleSpace: Container(
      decoration: BoxDecoration(
      gradient: LinearGradient(
      colors: [Colors.purple, Colors.red],
      begin: Alignment.bottomRight,
      end: Alignment.topLeft,
    ),
  ),
),
    ),

I fixed most of the issue but there is one last thing that keeps me run this code on my device. The error is The return type 'SliverAppBar' isn't a 'List<Widget>', as required by the closure's context. My body is wrapped with Singlechildscrollview. Is this why the NestedScrollView isn't working? Thanks for you help in advance

Ad

Answer

You need to return List of widgets from headerSliverBuilder. SliverAppBar is a single widget and returning like this, showing the error. You can wrap it with List.

headerSliverBuilder: (context, innerBoxIsScrolled) 
         => [ SliverAppBar(...) ]
Ad
source: stackoverflow.com
Ad