所以我在屏幕右侧有这个按钮(ImageView
和onClick
方法),当我向左拉它时会延伸到SeekBar
,您可以在其中选择一天中的时间。为了创建这个,我创建了一个ScrollView
,其水平LinearLayout
左侧是透视视图,右侧是“按钮”+ SeekBar
(大部分位于屏幕外)。 “按钮”包含OnTouch
和OnClick
听众。
在onTouch中,滚动视图被告知smoothScroll根据手指移动的位置找到正确的位置。当您移动小于某个阈值并释放时,将调用onClick。
在onClick中,我已将滚动视图告知smoothScrollTo
/ scrollTo
/ fullScroll
。 fullScroll没有工作。 smoothScrollTo大部分时间都在一台设备上运行(HTC Desire with Android 2.2.2),但从未在另一台设备(三星Galaxy Tab(旧版本)和Android 2.2上)使用ON ONCLICK(?)。 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并习惯不同设备的行为方式不同,但我不习惯在同一设备上同时使用“有时”工作,“有时”不会......任何帮助都会非常感激!
答案 0 :(得分:0)
请参阅this answer。
如果在调用方法时进行了一些布局更改,则 ScrollView.scrollTo()
可能无法正常工作。你是对的,使用postDelayed()
你无法保证布局的变化总是在相同的延迟时间内完成。