TP-52730 add reset of pager state support in uitron (#281)
This commit is contained in:
@@ -10,7 +10,8 @@ data class PagerProperty(
|
||||
var contentPadding: ComposePadding? = null,
|
||||
var pagerStateKey: String? = null,
|
||||
var spacingStyle: SpacingStyle? = null,
|
||||
var minFlingDistance: Int? = null
|
||||
var minFlingDistance: Int? = null,
|
||||
var initialPagerPosition: Int? = null
|
||||
) : BaseProperty() {
|
||||
|
||||
companion object {
|
||||
@@ -32,6 +33,7 @@ data class PagerProperty(
|
||||
pagerProperty?.pagerStateKey?.let { pagerStateKey = it }
|
||||
pagerProperty?.spacingStyle?.let { spacingStyle = it }
|
||||
pagerProperty?.minFlingDistance?.let { minFlingDistance = it }
|
||||
pagerProperty?.initialPagerPosition?.let { initialPagerPosition = it }
|
||||
}
|
||||
|
||||
data class SpacingStyle(
|
||||
|
||||
@@ -31,6 +31,7 @@ import com.navi.uitron.model.data.UiTronData
|
||||
import com.navi.uitron.model.ui.ComposePadding
|
||||
import com.navi.uitron.model.ui.PagerProperty
|
||||
import com.navi.uitron.model.ui.UiTronView
|
||||
import com.navi.uitron.utils.CLEAR_SCROLL_PAGER_STATE
|
||||
import com.navi.uitron.viewmodel.UiTronViewModel
|
||||
import customClickable
|
||||
import customCombinedClick
|
||||
@@ -199,6 +200,15 @@ class PagerRenderer(
|
||||
}
|
||||
}
|
||||
}
|
||||
LaunchedEffect(property.initialPagerPosition) {
|
||||
property.initialPagerPosition?.let { position ->
|
||||
if (position != -1 && position < childrenComposeViews.size) {
|
||||
pagerState.scrollToPage(position)
|
||||
property.initialPagerPosition = -1
|
||||
uiTronViewModel.handle[property.getPropertyId()] = CLEAR_SCROLL_PAGER_STATE
|
||||
}
|
||||
}
|
||||
}
|
||||
ObservePageChange(pagerState, property, uiTronViewModel, pagerData)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ const val PACKAGE_COLON = "package:"
|
||||
const val STOP = "stop"
|
||||
const val DISABLE_RESTART_TIMER = "disableRestartTimer"
|
||||
const val REMOVE_FOCUS = "removeFocus"
|
||||
const val CLEAR_SCROLL_PAGER_STATE = "clearScrollPagerState"
|
||||
|
||||
const val KEY_MVEL_ACTION = "mvelAction"
|
||||
const val KEY_UI_TRON_DATA = "uiTronData"
|
||||
|
||||
Reference in New Issue
Block a user