0

我玩 Gallery View 已经有一段时间了,我已经启动并运行了基本的东西。但是,我在滚动时遇到问题。我试图在谷歌中搜索并没有得到解决这个问题的简单方法。我正在使用基本适配器加载图像,一旦完成,我需要移动到特定位置(读取自动滚动)。我面临的问题是,假设我在画廊中加载了 50 张图像,我想移动到第 30 个位置,我只需要调用 gallery.setSelection(30) 就可以了。这仅在通过单击按钮调用时才有效。但是,我希望对活动负载本身执行相同的操作。将 BaseAdapter 与库绑定后,我无法确定绑定何时完成。我将不胜感激这方面的任何帮助。这就是我绑定适配器的方式。

        gallery = (Gallery) findViewById(R.id.wpGallery);
    ImageAdapter imgAdapter = new ImageAdapter(this);
    gallery.setAdapter(imgAdapter);     

我想移动到给定的位置,并在它移动到该位置后触发 onClickEvent。

4

1 回答 1

0

我不确定这是否可行。但它值得一试。

将此代码放入 onCreate

ViewTreeObserver vto = gallery.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
        gallery.getViewTreeObserver().removeGlobalOnLayoutListener(this);
        DO WHATEVER YOU NEED TO DO.

    }
});

OnGlobalLayoutListener 在视图组布局在屏幕上后调用。您应该可以在这里进行 setSelection 。

于 2011-10-26T04:53:37.773 回答