emptiable_list 1.1.0 copy "emptiable_list: ^1.1.0" to clipboard
emptiable_list: ^1.1.0 copied to clipboard

discontinued

Container for a list-displaying widget, that can display a placeholder-widget when the list is empty.

example/lib/main.dart

import 'dart:async';

import 'package:animated_stream_list/animated_stream_list.dart';
import 'package:emptiable_list/emptiable_list.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(ExampleApp());
}

class ExampleApp extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _ExampleAppState();
  }
}

class _ExampleAppState extends State<ExampleApp> {
  final title = 'Emptiable list example';
  final controller = StreamController<List<String>>.broadcast();
  final items = <String>[];

  @override
  void initState() {
    _initializeListAfterADelay();
  }

  @override
  void dispose() {
    controller.close();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: title,
      home: Scaffold(
        appBar: AppBar(
          title: Text(title),
          actions: <Widget>[
            IconButton(
                icon: Icon(Icons.add),
                onPressed: _add
            ),
            IconButton(
                icon: Icon(Icons.remove),
                onPressed: _remove
            )
          ],
        ),
        body: EmptiableList(
            listStream: controller.stream,
            initializingPlaceholder: Center(child: Text('Loading...')),
            placeholder: Center(child: Text('No items =(')),
            list: AnimatedStreamList(
                streamList: controller.stream,
                itemBuilder: _createItem,
                itemRemovedBuilder: _createItem
            )
        ),
      ),
    );
  }

  Widget _createItem(String item, int index, BuildContext context, Animation<double> animation) {
    return SizeTransition(sizeFactor: animation, child: Text(item));
  }

  void _add() {
    items.add('Item');
    controller.add(items);
  }

  void _remove() {
    items.removeLast();
    controller.add(items);
  }

  void _initializeListAfterADelay() async {
    await Future.delayed(Duration(seconds: 2));
    controller.add(items);
  }
}
0
likes
40
pub points
0%
popularity

Publisher

unverified uploader

Container for a list-displaying widget, that can display a placeholder-widget when the list is empty.

Repository (GitHub)
View/report issues

License

Apache-2.0 (LICENSE)

Dependencies

flutter

More

Packages that depend on emptiable_list