<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<io.getstream.chat.android.ui.pinned.list.PinnedMessageListView
android:id="@+id/pinnedMessageListView"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
This is documentation for
Stream Chat Android SDK v5, which is nolonger actively maintained. For up-to-date documentation, see the latest version (v6).
Pinned Message List View
PinnedMessageListView
is a UI Component that shows a list of pinned messages.
Light Mode | Dark Mode |
---|---|
Usage
You can add this View via XML:
We recommend using this view with its ViewModel, which supplies it with data from the Stream API.
The basic setup of the ViewModel and connecting it to the View is done the following way:
val viewModel: PinnedMessageListViewModel by viewModels {
PinnedMessageListViewModelFactory(cid = "channelType:channelId")
}
viewModel.bindView(pinnedMessageListView, viewLifecycleOwner)
ViewModelProvider.Factory factory = new PinnedMessageListViewModelFactory.Builder()
.cid("channelType:channelId")
.build();
PinnedMessageListViewModel viewModel = new ViewModelProvider(this, factory).get(PinnedMessageListViewModel.class);
PinnedMessageListViewModelBinding.bind(viewModel, pinnedMessageListView, getViewLifecycleOwner());
From that point, you should be able to see the list of pinned messages.
bindView
sets listeners on the View and the ViewModel. Any additional listeners should be set after calling bindView
.
Handling Actions
PinnedMessageListView
allows you to configure certain actions on it:
pinnedMessageListView.setPinnedMessageSelectedListener { message ->
// Handle a pinned message item being clicked
}
pinnedMessageListView.setPinnedMessageSelectedListener(message -> {
// Handle a mention item being clicked
});
The full list of available listeners is available here.
On this page: