gpt4 book ai didi

android - 为什么 ScrollView 有时(!)在调用 scrollTo 时不滚动(在 onClick 事件中)

转载 作者:太空狗 更新时间:2023-10-29 15:18:27 26 4
gpt4 key购买 nike

所以我在屏幕右侧有这个按钮(ImageViewonClick 方法),当我将它拉到左边时,它会延伸到一个 SeekBar 您可以在其中选择一天中的时间。为了创建它,我制作了一个带有水平 LinearLayoutScrollView,左侧是透视 View ,右侧是“button”+SeekBar右(大部分在屏幕之外)。 “按钮”有一个 OnTouchOnClick 监听器。

在 onTouch 中, ScrollView 被告知根据手指移动的位置平滑滚动到正确的位置。当您移动小于某个阈值并释放时,将调用 onClick。

在 onClick 中,我已将 ScrollView 设置为 smoothScrollTo/scrollTo/fullScroll。 fullScroll 从来没有用过。 smoothScrollTo 大部分时间都在一台设备(HTC Desire with Android 2.2.2)上工作,但从未在另一台设备(Samsung Galaxy Tab(旧款)和 Android 2.2)上工作(?)。 scrollTo 有时适用于两种设备...我确定 onClick 在我记录它启动时被调用,并且在告诉 ScrollView 滚动之后直接被调用。

我已经尝试将 scrollTo 发布到 runnable 和延迟的 runnable 中的 ScrollView:

scrollView.postDelayed(new Runnable() {

@Override
public void run() {
scrollView.scrollTo(left, 0);
Log.d("SomeTag", "The scroller should scroll to: "+left);
}
}, 200);

但这与不发布它一样经常(有时)有效......

我很迷茫。我习惯于使用 Android 并习惯于不同的设备表现不同,但我不习惯在同一设备上进行相同的调用“有时”工作而“有时”不工作......任何帮助将不胜感激!

最佳答案

参见 this answer .

ScrollView.scrollTo() 如果在您调用该方法时进行了某些布局更改,则可能无法正常工作。你是对的,使用 postDelayed() 你不能保证布局更改总是在相同的延迟时间内完成。

关于android - 为什么 ScrollView 有时(!)在调用 scrollTo 时不滚动(在 onClick 事件中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10319290/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com