0

私はギャラリービューでしばらく遊んでいて、基本的なものを稼働させています。ただし、スクロールに問題があります。Google で検索しようとしましたが、この問題に対する簡単な解決策が得られませんでした。Base Adapter を使用して画像を読み込んでいます。完了したら、特定の位置に移動する必要があります (自動スクロールを読み取ります)。私が直面している問題は、ギャラリーに 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 は、viewgroup が画面に配置された後に呼び出されます。ここで setSelection を実行できるはずです。

于 2011-10-26T04:53:37.773 に答える