lisTile static method
Widget
lisTile({
- required BuildContext context,
- bool isLoading = false,
- Widget? leading,
- Widget? trailing,
- bool isSelected = false,
- EdgeInsetsGeometry? contentPadding,
- required String title,
- Widget titleBuilder(
- BuildContext context,
- Text child
- String subtitle = "",
- TextOverflow? subtitleTextOverflow,
- int? subtitleMaxLines,
- void onLongPress()?,
- void onTap()?,
- TextStyle textStyleBuilder(
- BuildContext context,
- TextStyle textStyle
UncompleteDocumentation
Implementation
static Widget lisTile({
required BuildContext context,
bool isLoading = false,
Widget? leading,
Widget? trailing,
bool isSelected = false,
EdgeInsetsGeometry? contentPadding,
required String title,
Widget Function(BuildContext context, Text child)? titleBuilder,
String subtitle = "",
TextOverflow? subtitleTextOverflow,
int? subtitleMaxLines,
void Function()? onLongPress,
void Function()? onTap,
TextStyle Function(BuildContext context, TextStyle textStyle)?
textStyleBuilder,
}) {
final child = MaterialButton(
onLongPress: onLongPress,
onPressed: onTap,
color: (isSelected) ? context.theme.highlightColor : null,
highlightColor: Colors.transparent,
child: ListTile(
contentPadding: contentPadding ?? const EdgeInsets.only(),
leading: leading,
title: (titleBuilder ?? titleBuilderDefault).call(
context,
Text(
title,
style: (textStyleBuilder ?? textStyleBuilderDefault).call(
context,
(context.theme.textTheme.bodyMedium ??
const TextStyle()
.copyWith(color: context.theme.indicatorColor))),
),
),
subtitle: () {
if (subtitle.trim().isNotEmpty) {
return Text(
subtitle.trim(),
style: (textStyleBuilder ?? textStyleBuilderDefault).call(
context,
(context.theme.textTheme.bodySmall ??
const TextStyle()
.copyWith(color: context.theme.hintColor))),
overflow: subtitleTextOverflow ?? TextOverflow.ellipsis,
maxLines: subtitleMaxLines,
);
}
return null;
}(),
trailing: trailing,
),
);
if (isLoading) {
return SkeletonizerGeneralFramework(
enabled: isLoading,
child: child,
);
}
return child;
}