Skip to content

Instantly share code, notes, and snippets.

@thiagocarvalhodev
Created September 4, 2020 22:13
Show Gist options
  • Save thiagocarvalhodev/0ea58868469224bf40c5b9c878b02b06 to your computer and use it in GitHub Desktop.
Save thiagocarvalhodev/0ea58868469224bf40c5b9c878b02b06 to your computer and use it in GitHub Desktop.
bottom_sheet
import 'package:flutter/material.dart';
import 'package:zera/src/common/all.dart';
import 'package:zera/src/common/theme_loader.dart';
import 'package:zera/src/widgets/bottom_sheet_list_item/bottom_sheet_list_item_theme.dart';
class ZeraBottomSheetListItem extends StatelessWidget with ThemeLoader {
final Key key;
final ZeraBottomSheetListItemStyle style;
final ZeraBottomSheetListItemTheme theme;
final List models;
final Widget Function(String) builder;
final Function onPressed;
final EdgeInsets padding;
final bool shrinkWrap;
final ScrollController controller;
final double height;
// TODO: IMplementar tipo genérico
final Function(String, int) onTap;
ZeraBottomSheetListItem(
{this.key,
this.theme,
this.style,
@required this.models,
@required this.builder,
this.onPressed,
this.padding,
this.shrinkWrap = false,
this.controller,
this.onTap,
this.height})
: super(key: key);
@override
Widget build(BuildContext context) {
final theme = loadTheme(context);
return Container(
height: height,
child: ListView.builder(
controller: controller ?? ScrollController(),
padding: padding ?? EdgeInsets.all(kComponentSpacerL),
shrinkWrap: shrinkWrap,
itemCount: models.length,
itemBuilder: (context, index) => InkWell(
onTap: () => onTap(models[index], index),
child: builder(models[index]))),
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment