Nea*_*999 13 android nestedscrollview
我在CardView父母的内部有可扩展的视图NestedScrollView.当扩展动画结束时,我正在尝试为子项创建平滑滚动.但我发现只有一个解决方案:
scrollView.requestChildFocus(someView, someView);
Run Code Online (Sandbox Code Playgroud)
这段代码工作正常,但是,当requestChildFocus它调用时它立即滚动,这让我很烦恼.是否可以顺利滚动到孩子?
Nea*_*999 17
的childView,而我想滚动,有CardViewparrent,所以childView.getTop()返回相对值CardView不至ScrollView.所以,为了得到最高的相对于ScrollView我应该得到childView.getParent().getParent()然后把它投入View并打电话getTop().
滚动位置计算如下
int scrollTo = ((View) childView.getParent().getParent()).getTop() + childView.getTop();
nestedScrollView.smoothScrollTo(0, scrollTo);
Run Code Online (Sandbox Code Playgroud)
更多 @jerry-sha 的答案
fun NestedScrollView.smoothScrollTo(view: View) {
var distance = view.top
var viewParent = view.parent
//traverses 10 times
for (i in 0..9) {
if ((viewParent as View) === this) break
distance += (viewParent as View).top
viewParent = viewParent.getParent()
}
smoothScrollTo(0, distance)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7616 次 |
| 最近记录: |