UserListView class

It shows the list of current users.

class UsersListPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: UsersListView(
        filter: {
          'members': {
            '\$in': [StreamChat.of(context).user.id],
          }
        },
        sort: [SortOption('last_message_at')],
        pagination: PaginationParams(
          limit: 20,
        ),
        channelWidget: ChannelPage(),
      ),
    );
  }
}

Make sure to have a UsersBloc ancestor in order to provide the information about the users. The widget uses a ListView.separated, GridView.builder to render the list, grid of channels.

The widget components render the ui based on the first ancestor of type StreamChatTheme. Modify it to change the widget appearance.

Inheritance

Constructors

UserListView({Key? key, Filter filter = const Filter.empty(), List<SortOption>? sort, bool? presence, @Deprecated("'pagination' is deprecated and shouldn't be used. " "This property is no longer used, Please use 'limit' instead") PaginationParams? pagination, int? limit, UserTapCallback? onUserTap, dynamic onUserLongPress(User)?, Widget? userWidget, UserItemBuilder? userItemBuilder, dynamic separatorBuilder(BuildContext, int)?, dynamic onImageTap(User)?, Set<User>? selectedUsers, bool pullToRefresh = true, bool groupAlphabetically = false, int crossAxisCount = 1, ErrorBuilder? errorBuilder, WidgetBuilder? emptyBuilder, WidgetBuilder? loadingBuilder, Widget listBuilder(BuildContext context, List<ListItem> users)?, UserListController? userListController})
Instantiate a new UserListView

Properties

crossAxisCount int
The number of children in the cross axis.
final
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
onImageTap → (dynamic Function(User)?)
The function called when the image is tapped
final
onUserLongPress → (dynamic Function(User)?)
Function called when long pressing on a channel
final
onUserTap UserTapCallback?
Function called when tapping on a channel By default it calls Navigator.push building a MaterialPageRoute with the widget userWidget as child.
final
pagination PaginationParams?
Pagination parameters limit: the number of users to return (max is 30) offset: the offset (max is 1000) message_limit: how many messages should be included to each channel
final
presence bool?
If true you’ll receive user presence updates via the websocket events
final
pullToRefresh bool
Set it to false to disable the pull-to-refresh widget
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
selectedUsers Set<User>?
Sets a blue trailing checkMark in ListUserItem for all the selectedUsers
final
separatorBuilder → (dynamic Function(BuildContext, int)?)
Builder used to create a custom item separator
final
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
userItemBuilder UserItemBuilder?
Builder used to create a custom user preview
final
userListController UserListController?
A UserListController allows reloading and pagination. Use UserListController.loadData and UserListController.paginateData respectively for reloading and pagination.
final
userWidget Widget?
Widget used when opening a channel
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() → _UserListViewState
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