AsyncListUtil.ViewCallback

abstract class AsyncListUtil.ViewCallback


The callback that links AsyncListUtil with the list view.

All methods are called on the main thread.

Summary

Constants

const Int

Scrolling in ascending order (from lower to higher positions in the order of the backing storage).

const Int

Scrolling in descending order (from higher to lower positions in the order of the backing storage).

const Int

No scroll direction hint available.

Public constructors

Public functions

Unit
@UiThread
extendRangeInto(range: IntArray, outRange: IntArray, scrollHint: Int)

Compute a wider range of items that will be loaded for smoother scrolling.

abstract Unit

Compute the range of visible item positions.

abstract Unit

Called when the entire data set has changed.

abstract Unit

Called when an item at the given position is loaded.

Constants

HINT_SCROLL_ASC

Added in 1.0.0
const val HINT_SCROLL_ASC = 2: Int

Scrolling in ascending order (from lower to higher positions in the order of the backing storage).

HINT_SCROLL_DESC

Added in 1.0.0
const val HINT_SCROLL_DESC = 1: Int

Scrolling in descending order (from higher to lower positions in the order of the backing storage).

HINT_SCROLL_NONE

Added in 1.0.0
const val HINT_SCROLL_NONE = 0: Int

No scroll direction hint available.

Public constructors

ViewCallback

Added in 1.0.0
ViewCallback()

Public functions

extendRangeInto

Added in 1.0.0
@UiThread
fun extendRangeInto(range: IntArray, outRange: IntArray, scrollHint: Int): Unit

Compute a wider range of items that will be loaded for smoother scrolling.

If there is no scroll hint, the default implementation extends the visible range by half its length in both directions. If there is a scroll hint, the range is extended by its full length in the scroll direction, and by half in the other direction.

For example, if range is {100, 200} and scrollHint is HINT_SCROLL_ASC, then outRange will be {50, 300}.

However, if scrollHint is HINT_SCROLL_NONE, then outRange will be {50, 250}

Parameters
range: IntArray

Visible item range.

outRange: IntArray

Extended range.

scrollHint: Int

The scroll direction hint.

getItemRangeInto

Added in 1.0.0
@UiThread
abstract fun getItemRangeInto(outRange: IntArray): Unit

Compute the range of visible item positions.

outRange[0] is the position of the first visible item (in the order of the backing storage).

outRange[1] is the position of the last visible item (in the order of the backing storage).

Negative positions and positions greater or equal to getItemCount are invalid. If the returned range contains invalid positions it is ignored (no item will be loaded).

Parameters
outRange: IntArray

The visible item range.

onDataRefresh

Added in 1.0.0
@UiThread
abstract fun onDataRefresh(): Unit

Called when the entire data set has changed.

onItemLoaded

Added in 1.0.0
@UiThread
abstract fun onItemLoaded(position: Int): Unit

Called when an item at the given position is loaded.

Parameters
position: Int

Item position.