Skip to content

Commit 7ad16b1

Browse files
authored
fix(android): set initialIndex only once (#457)
* Add tabview example * fix(android): set initialIndex only once
1 parent 22637f2 commit 7ad16b1

28 files changed

+1282
-6
lines changed

android/src/main/java/com/reactnativepagerview/NestedScrollableHost.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import kotlin.math.sign
2222
class NestedScrollableHost : FrameLayout {
2323
constructor(context: Context) : super(context)
2424
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
25-
25+
public var initialIndex: Int? = null
2626
private var touchSlop = 0
2727
private var initialX = 0f
2828
private var initialY = 0f

android/src/main/java/com/reactnativepagerview/PagerViewViewManager.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,13 @@ class PagerViewViewManager : ViewGroupManager<NestedScrollableHost>() {
145145
@ReactProp(name = "initialPage", defaultInt = 0)
146146
fun setInitialPage(host: NestedScrollableHost, value: Int) {
147147
val view = getViewPager(host)
148-
view.post {
149-
setCurrentItem(view, value, false)
148+
//https://github.com/callstack/react-native-pager-view/issues/456
149+
//Initial index should be set only once.
150+
if (host.initialIndex === null) {
151+
view.post {
152+
setCurrentItem(view, value, false)
153+
host.initialIndex = value
154+
}
150155
}
151156
}
152157

27.6 KB
Loading
20.3 KB
Loading
27.4 KB
Loading
33.1 KB
Loading
11.4 KB
Loading
21.6 KB
Loading
10 KB
Loading
20.9 KB
Loading

0 commit comments

Comments
 (0)