DEV Community

Cover image for 🦋How to handle a scrollable list of various widgets in Flutter
Luciano Jung
Luciano Jung

Posted on • Edited on

5 2

🦋How to handle a scrollable list of various widgets in Flutter

Hey there Devs,
I have a quick update for a reusable flutter widget I created during my current project.

The task is to create a scrollable List containing various widgets, on a page, where there is also a widget on the bottom of the page possibly cover some items from the list.

The widget I came up with for my shared folder is the following:

import 'package:flutter/material.dart';

class SettingList extends StatelessWidget {
  final List<Widget> children;
  double height;

  SettingList({required this.children, this.height = 96}) {
    children.add(
      SizedBox(height: this.height),);
  }

  @override
  Widget build(BuildContext context) {
    return SingleChildScrollView(
      child: Column(
        children: children,
      ),
    );
  }
}
Enter fullscreen mode Exit fullscreen mode

The SettingList widget simply is a SingleChildScrollView wrapping a column to make it possible to contain various widgets. The height value can be overridden and is used for a SizedBox widget to add some Padding on the Bottom.

To handle the mentioned Challenge I put both the widget for the bottom and those for the list inside a Stack Widget to handle them (shown below):

Stack(
        children: [
          SettingList(children: [
            ListOfWidgets
          ]),
          BottomWidgetWithAlignment
        ],
      ),
Enter fullscreen mode Exit fullscreen mode

With some adjustments you can create a similar widget handling also space on the top.

I hope this quick example helps you one day, when you have a similar problem.
If you wanna see my current project head over to Github at https://github.com/lucianojung/flutter_package_examples (the corresponding widget is currently in a feature branch)

If you wanna know more about my project head over to medium and get to know a new useful flutter package every week
https://medium.com/@lucianojung

Fyi: the solution prevents the following error:
flutter package example app without using the SettingList widget

Sentry mobile image

App store rankings love fast apps - mobile vitals can help you get there

Slow startup times, UI hangs, and frozen frames frustrate users—but they’re also fixable. Mobile Vitals help you measure and understand these performance issues so you can optimize your app’s speed and responsiveness. Learn how to use them to reduce friction and improve user experience.

Read full post →

Top comments (1)

Collapse
 
pablonax profile image
Pablo Discobar

Hey, cool job! Let's develop the community together. I wrote an article about free Flutter templates, if you have any products (not necessarily a flutter template) that you would like to share, please submit them on my website and I will add them to my article! - code.market/sign-up/


dev.to/pablonax/free-flutter-templ...

Sentry mobile image

App store rankings love fast apps - mobile vitals can help you get there

Slow startup times, UI hangs, and frozen frames frustrate users—but they’re also fixable. Mobile Vitals help you measure and understand these performance issues so you can optimize your app’s speed and responsiveness. Learn how to use them to reduce friction and improve user experience.

Read full post →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay