私は独自のグリッド ビュー関数を構築しようとしています - で拡張しますGridView
。私が解決できない唯一のことは、の現在のスクロール位置を取得する方法GridView
です。
getScrollY()
は常に 0 を返します。onScrollListener
のパラメータは、実際のスクロール位置ではなく、表示される子ビューの範囲です。
これはそれほど難しくないように思えますが、Web で解決策を見つけることができません。
アイデアを持っている人はいますか?
私は独自のグリッド ビュー関数を構築しようとしています - で拡張しますGridView
。私が解決できない唯一のことは、の現在のスクロール位置を取得する方法GridView
です。
getScrollY()
は常に 0 を返します。onScrollListener
のパラメータは、実際のスクロール位置ではなく、表示される子ビューの範囲です。
これはそれほど難しくないように思えますが、Web で解決策を見つけることができません。
アイデアを持っている人はいますか?
良い解決策は見つかりませんでしたが、これは少なくともスクロール位置をピクセル単位で完全に維持できます。
int offset = (int)(<your vertical spacing in dp> * getResources().getDisplayMetrics().density);
int index = mGrid.getFirstVisiblePosition();
final View first = container.getChildAt(0);
if (null != first) {
offset -= first.getTop();
}
// Destroy the position through rotation or whatever here!
mGrid.setSelection(index);
mGrid.scrollBy(0, offset);
それによって、絶対スクロール位置を取得することはできませんが、表示アイテム + 変位ペアを取得できます。
ノート:
それが助けになり、あなたにアイデアを与えることを願っています。