Builder for constructing slices composed of rows of content.
A slice is a piece of templated app content that can be presented outside of the app providing
the slice in a
SliceView. To provide a slice you should implement a
SliceProvider and use ListBuilder to construct your slice when
SliceProvider.onBindSlice(Uri) is called.
ListBuilder allows you to construct a slice made up of rows of content. The row types that ListBuilder supports are:
ListBuilder.HeaderBuilder- The first row of your slice should be a header. The header supports a title, subtitle, and tappable row action. A header can also have a summary of the contents of the slice which can be shown when not all of the slice can be displayed.
ListBuilder.RowBuilder- A basic row supports title, subtitle, timestamps, and various action types.
GridRowBuilder- A grid row supports cells of vertically laid out content displayed in a single row.
ListBuilder.RangeBuilder- A range row supports displaying a horizontal progress indicator.
ListBuilder.InputRangeBuilder- An input range row supports displaying a horizontal slider allowing slider input (e.g. brightness or volume slider).
ListBuilder.RatingBuilder- An star rating row supports displaying a horizontal star rating input (e.g. rating 4/5 stars)
Slices are meant to be presented outside of the app providing them, the slice presenter could be
an Android system surface or another application. The presenter will normally use a
SliceView to display a slice. SliceView supports a couple of
different modes. These modes are not controlled by the app providing the slice, but
rather by the surface that is presenting the slice. To ensure your slice is presented
correctly you should consider the different modes SliceView supports:
SliceView.MODE_SMALL- Only the first row of content is displayed in small format, normally this will be the header. If no header was set, then the first row will be used and may appear differently depending on the row type and the configuration of
SliceView.MODE_LARGE- As many rows of content are shown as possible. If the presenter of the slice allows scrolling then all rows of content will be displayed in a scrollable view.
SliceView.MODE_SHORTCUT- In shortcut mode only a tappable image is displayed. The image and action used to represent this will be the primary action of your slice, i.e.
In addition to rows of content, ListBuilder can also have
SliceActions added to
it. These actions may appear differently on your slice depending on how
SliceView is configured. Normally the actions appear as icons in
the header of the slice.
There is no limit to the number of rows added to ListBuilder, however, the contents of a slice should be related to a primary task, action, or set of information. For example: it might make sense for a slice to manage wi-fi state to have a row for each available network, this might result in a large number of rows but each of these rows serve utility for the primary purpose of the slice which is managing wi-fi.
Note that scrolling on SliceView can be disabled, in which case only the header and one or two
rows of content may be shown for your slice. If your slice contains many rows of content to
scroll through (e.g. list of wifi networks), consider using
setSeeMoreAction(PendingIntent) to provide a link to open the activity associated with