0

2つのグリッドビューがあります。同期する必要があります。1つをスクロールするときは、2つ目も同じようにスクロールする必要があります。私はそうしました:

gvMain1.setOnScrollListener(new OnScrollListener(){
            @Override public void onScroll(AbsListView arg0, int arg1, int arg2, int arg3) 
            {
                gvMain2.setSelection(arg1);
            }
            @Override public void onScrollStateChanged(AbsListView arg0, int arg1) {}
            }); 

しかし、スクロールすると、高さの1行の違いに近いデルタが得られます。これは、最初のグリッドが移動するためだと思いますが、次の位置に切り替えるには十分ではありません。どうすれば修正できますか?

4

1 に答える 1

1

これは簡単ではありません。私はこれを試み、最終的にあきらめました。GridViewは、ListViewがサポートするものと同じものをすべてサポートしているわけではないため、これが非常に困難です。あなたはアンドロイドのListViewソースコードをクラックして開いて、それらが何をするかを複製しようとすることができます。または、ニーズに合う場合は、リストビューの使用に切り替えてください。

gridviewの場合、位置を取得するためにいくつかの魔法を行うことができます。GridViewからスクロール位置を取得する方法を参照してください。

グリッドビューの場合、実際に正しい場所に正確にスクロールする方法を見つけられませんでした。アイテムごとにのみスクロールします。

リストビューについては、次の投稿を参照してください: AndroidがListViewで正確なスクロール位置を取得する

このトピックに関する良い投稿もここにあります:Android:2つの異なるビューの同期スクロール

于 2013-01-30T03:58:59.143 に答える