UserListCore class
UserListCore is a simplified class that allows fetching users while exposing UI builders. A UserListController is used to load and paginate data.
class UsersListPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: UsersListCore(
filter: {
'members': {
'\$in': [StreamChat.of(context).user.id],
}
},
sort: [SortOption('last_message_at')],
pagination: PaginationParams(
limit: 20,
),
errorBuilder: (err) {
return Center(
child: Text('An error has occured'),
);
},
emptyBuilder: (context) {
return Center(
child: Text('Nothing here...'),
);
},
emptyBuilder: (context) {
return Center(
child: CircularProgressIndicator(),
);
},
listBuilder: (context, list) {
return UsersPage(list);
}
),
);
}
}
UsersBloc must be the ancestor of this widget. This is necessary since UserListCore depends on functionality contained within UsersBloc.
The parameters listBuilder, loadingBuilder, emptyBuilder and errorBuilder must all be supplied and not null.
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- UserListCore
Constructors
-
UserListCore({required ErrorBuilder errorBuilder, required WidgetBuilder emptyBuilder, required WidgetBuilder loadingBuilder, required Widget listBuilder(BuildContext context, List<
ListItem> users), Key? key, Filter filter = const Filter.empty(), List<SortOption> ? sort, bool? presence, bool groupAlphabetically = false, UserListController? userListController, int limit = 30}) -
Instantiate a new UserListCore
const
Properties
- emptyBuilder → WidgetBuilder
-
The builder used when the channel list is empty.
final
- errorBuilder → ErrorBuilder
-
The builder that will be used in case of error
final
- filter → Filter
-
The query filters to use.
You can query on any of the custom fields you've defined on the Channel.
You can also filter other built-in channel fields.
final
- groupAlphabetically → bool
-
Set it to true to group users by their first character
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- limit → int
-
The amount of users requested per API call.
final
-
listBuilder
→ Widget Function(BuildContext context, List<
ListItem> users) -
The builder that will be used to build the list
final
- loadingBuilder → WidgetBuilder
-
The builder that will be used for loading
final
- presence → bool?
-
If true you’ll receive user presence updates via the websocket events
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
sort
→ List<
SortOption> ? -
The sorting used for the channels matching the filters.
Sorting is based on field and direction, multiple sorting options can be
provided. You can sort based on last_updated, last_message_at, updated_at,
created_at or member_count. Direction can be ascending or descending.
final
- userListController → UserListController?
-
A UserListController allows reloading and pagination.
Use UserListController.loadData and UserListController.paginateData
respectively for reloading and pagination.
final
Methods
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → UserListCoreState -
Creates the mutable state for this widget at a given location in the tree.
override
-
debugDescribeChildren(
) → List< DiagnosticsNode> -
Returns a list of
DiagnosticsNode
objects describing this node's children.inherited -
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toDiagnosticsNode(
{String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep.
inherited
-
toString(
{DiagnosticLevel minLevel = DiagnosticLevel.info}) → String -
A string representation of this object.
inherited
-
toStringDeep(
{String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String -
Returns a string representation of this node and its descendants.
inherited
-
toStringShallow(
{String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String -
Returns a one-line detailed description of the object.
inherited
-
toStringShort(
) → String -
A short, textual description of this widget.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited