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
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- UserListView
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