- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个填充有垂直 LinearLayout 的 NestedScrollView,它本身有一堆不同 View 类型的 subview :多个 TextView、两个静态 GridView,甚至还有一个 FrameLayout 以在所有这些 View 下方显示一个 Fragment。
当按下后退按钮时,如果用户滚动到某个点以下,则调用“scrollToTop”方法而不是完成 Activity:
public static void scrollToTop(final NestedScrollView scrollview) {
new Handler().postDelayed(new Runnable() {
public void run() {
scrollview.fullScroll(NestedScrollView.FOCUS_UP);
}
}, 200);
}
这适用于我的应用程序的早期版本,它位于 Play 商店中。但是现在,在更新我的应用程序以针对 Android Oreo(并将支持库更新到版本 26.0.2)之后,它似乎没有滚动到顶部,而是从 NestedScrollView 的原始滚动位置下方开始滚动,并在原处停止。所以它只是看起来像一个奇怪的口吃。然而,在某些位置,它确实滚动到顶部(尽管很少见且不一致),而在其他位置它实际上滚动到底部,我不明白这是什么原因。
我一直在试验 View 聚焦能力,但无济于事。例如,我读到 Static GridViews 可能会在滚动时中断焦点。我也尝试过各种不同的方法来向上滚动,例如
scrollview.pageScroll(View.FOCUS_UP);
和
scrollview.smoothScrollTo(0,0);
但似乎没有任何效果。这次支持库有问题吗?
最佳答案
试试这个
将 android:descendantFocusability="blocksDescendants"
添加到 NestedScrollView
内的 LinearLayout
中,这也是
滚动到 NestedScrollView
的顶部使用这个
NestedScrollView.scrollTo(0, 0);
编辑
使用fling()
和 smoothScrollTo
在一起
nestedScrollView.post(new Runnable() {
@Override
public void run() {
nestedScrollView.fling(0);
nestedScrollView.smoothScrollTo(0, 0);
}
});
关于android - NestedScrollView 的 fullScroll(View.FOCUS_UP) 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46156882/
我有一个填充有垂直 LinearLayout 的 NestedScrollView,它本身有一堆不同 View 类型的 subview :多个 TextView、两个静态 GridView,甚至还有一
我是一名优秀的程序员,十分优秀!