Filter List (Numeric)
About this widget
FilterList.Numeric
is a filtering view that displays any kind of numeric filters and lets the user refine the search results by selecting them.
Compared to the RefinementList
, which takes its values from the search response facets, this widget displays numeric filters that you add yourself.
To add a filter list to your search experience, use these components:
Searcher
: TheSearcher
that handles your searches.FilterState
: The current state of the filters.FilterListViewModel.Numeric
: The logic applied to the numeric filters.FilterListView.Numeric
: The view that will render the numeric filters.FilterPresenter
: Optional. The presenter to customize the display of the filters.
Examples
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class MyActivity : AppCompatActivity() {
val client = ClientSearch(
ApplicationID("YourApplicationID"),
APIKey("YourAPIKey")
)
val index = client.initIndex(IndexName("YourIndexName"))
val searcher = SearcherSingleIndex(index)
val filterState = FilterState()
val price = Attribute("price")
val filters = listOf(
Filter.Numeric(price, NumericOperator.Less, 5),
Filter.Numeric(price, 5..10),
Filter.Numeric(price, 10..25),
Filter.Numeric(price, 25..100),
Filter.Numeric(price, NumericOperator.Greater, 100)
)
val viewModel = FilterListViewModel.Numeric(filters)
val connection = ConnectionHandler()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val view: FilterListView.Numeric = MyFilterListRecyclerViewAdapter()
connection += searcher.connectFilterState(filterState)
connection += viewModel.connectFilterState(filterState)
connection += viewModel.connectView(view)
searcher.searchAsync()
}
override fun onDestroy() {
super.onDestroy()
connection.disconnect()
searcher.cancel()
}
}
Parameters
searcher
|
type: Searcher
Required
The |
||
Copy
|
|||
filterState
|
type: FilterState
Required
The |
||
Copy
|
|||
numericListView
|
type: FilterListView.Numeric
Required
The view that will render the numeric filters. |
||
Copy
|
|||
attribute
|
type: Attribute
Required
The numeric attribute to filter. |
||
Copy
|
|||
items
|
type: List<Filter.Numeric>
default: listOf()
Required
The numeric filters to display. |
||
Copy
|
|||
groupId.operator
|
type: FilterOperator
default: FilterOperator.And
Optional
Whether we apply an For example if we have an |
||
Copy
|
|||
selectionMode
|
type: SelectionMode
default: Multiple
Optional
Whether the list can have |
||
Copy
|
Presenter
presenter
|
type: FilterPresenter
default: FilterPresenterImpl()
Optional
A presenter describing how to display a filter. |
||
Copy
|