3

所以我在屏幕的右侧有这个按钮(ImageView带有方法),当我把它拉到左边时,它会延伸到你可以选择一天中的时间的地方。为了创建它,我制作了一个水平视图,左侧是透视视图,右侧是“按钮”+ (主要在屏幕之外)。“按钮”有一个和监听器。onClickSeekBarScrollViewLinearLayoutSeekBarOnTouchOnClick

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

在 onClick 我已经告诉滚动视图smoothScrollTo// scrollTofullScrollfullScroll 从来没有工作过。smoothScrollTo 大部分时间都在一台设备上工作(HTC Desire 与 Android 2.2.2),但从未在另一台设备(三星 Galaxy Tab(旧款)与 Android 2.2)上的 ONCLICK(?)上工作。scrollTo 有时在两种设备上都可以使用...我确信onClick当我记录它启动时以及在告诉ScrollView滚动之后直接调用它。

我尝试将 scrollTo 发布到ScrollView可运行和延迟可运行中:

scrollView.postDelayed(new Runnable() {

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

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

我不知所措。我习惯于使用 Android 并习惯于不同的设备表现不同,但我不习惯在同一设备上“有时”工作而“有时”没有相同的呼叫......任何帮助将不胜感激!

4

1 回答 1

0

See this answer.

ScrollView.scrollTo() may not working if some layout changes are being made when you called the method. And you are right, using postDelayed() you cannot guarantee that layout changes in will always finish within the same delay time.

于 2013-09-21T08:13:03.917 回答