The Bookmarks component shows the list of a map's bookmarks in a RecyclerView and allows the user to select a bookmark and perform some action.
The app can define the BookmarkView
in its view hierarchy, as BookmarkView
extends FrameLayout. The app
has to set the bookmarks
property on the BookmarkView
with the map's bookmarks. To handle the event when the
user taps on an item in the list, the app has to implement BookmarkView.onItemClickListener
interface.
Here is an example XML code that shows the BookMarkView and the BookmarkView's bookmarks attribute
being bound to map.bookmarks
via mapViewModel's bookmarks property:
<data>
<variable
name="mapViewModel"
type="com.esri.arcgisruntime.toolkit.test.bookmark.map.MapViewModel" />
</data>
.....
<com.esri.arcgisruntime.toolkit.bookmark.BookmarkView
android:id="@+id/bookmarkView"
android:layout_width="0dp"
android:layout_height="0dp"
app:bookmarks="@{mapViewModel.bookmarks}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/guideline" />
.....
Here is example Kotlin code to set the activity that implements the BookmarkView's onItemClickListener interface as the
onItemClickListener and implementing the onItemClick()
class BookmarkActivity : AppCompatActivity(), BookmarkView.OnItemClickListener<Bookmark> {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
...
...
bookmarkView.onItemClickListener = this
}
override fun onItemClick(item: Bookmark) {
mapView.setViewpointAsync(item.viewpoint)
}
To see it in action, try out the bookmark test in the toolkit-test-app