3

如何在滑动时获取当前图像在图库视图中显示的位置?

4

2 回答 2

0

所以我认为这是不可能的,因为适配器视图的工作方式。基本上,对适配器视图的适配器的大多数调用(如果不是全部)都必须在 UI 线程上才能正常工作。并且动画肯定在 UI 线程上。因此,由于它们不能在同一线程上同时发生,因此在滑动动画结束之前,您实际上无法(准确地)读取位置。

如果您在任何其他线程上询问适配器 getSelectedItemPosition() ,它可能会为您提供当前位置,但也可能会过时一段时间,因为我猜测 UI 线程将在不检查排他锁的情况下更新该值。

于 2010-12-29T07:41:54.940 回答
0

当我们在图库视图中滑动图像时,我们可以获得位置,您覆盖图库视图的setOnItemSelectedListener

我们有来自那个监听器的两种方法,比如

avatar_gallery.setOnItemSelectedListener(new OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> parent, 
                                View view, 
                                int position, 
                                long id){                  
        Log.v("Selected", ""+position);
    }
    @Override
    public void onNothingSelected(AdapterView<?> parent){
    }
}
于 2012-07-24T05:52:42.263 回答