Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何知道我们已将ScrollView滚动到顶部_Android_Kotlin - Fatal编程技术网

Android 如何知道我们已将ScrollView滚动到顶部

Android 如何知道我们已将ScrollView滚动到顶部,android,kotlin,Android,Kotlin,我有一些片段,NestedScrollView是其中的根布局。我想要的是在这个片段的中间滚动,然后按下一些动作按钮,它必须触发自动滚动到片段顶部并调用一些动作,但只有在片段(NestedScrolView)丰富的顶部之后(用于平滑动画) 我写这个函数: fun NestedScrollView.scrollTop(callback: () -> Unit) { setOnScrollChangeListener { _: NestedScrollView?, _: Int, sc

我有一些片段,NestedScrollView是其中的根布局。我想要的是在这个片段的中间滚动,然后按下一些动作按钮,它必须触发自动滚动到片段顶部并调用一些动作,但只有在片段(NestedScrolView)丰富的顶部之后(用于平滑动画)

我写这个函数:

fun NestedScrollView.scrollTop(callback: () -> Unit) {

    setOnScrollChangeListener { _: NestedScrollView?, _: Int, scrollY: Int, _: Int, _: Int ->

        if (scrollY == 0) {

            callback.invoke()
        }
    }

    fullScroll(View.FOCUS_UP)
}
但当碎片已经在顶部时,如果我按下ACTION_按钮,它就不起作用了

而且,在调用回调之前,我会眨一下眼睛

那么,在我的例子中,处理点击操作按钮的最佳方式是什么?是否有用于NestedScrollView的回调函数,在到达顶部后调用,以及如何处理我已经在屏幕顶部的情况(OnScrollChangeListener不调用)

scrollView.viewTreeObserver.addOnScrollChangedListener {
    if (!scrollView.canScrollVertically(1)) {
        // Bottom of scroll view.
    }
    if (!scrollView.canScrollVertically(-1)) {
        // Top of scroll view.
    }
}