Gridviewが一番上までスクロールされているかどうかを確認したいと思います。
現在、これを行うためにgetChildAt(0).getTop()を使用しています。最初の描画でgetChildAt(0).getTop()の値を保存し、後続の描画でgetChildAt(0).getTop()と比較します。
しかし、これはハッキーなようで、時々間違った結果をもたらすようです。
より良いアイデアはありますか?
Gridviewが一番上までスクロールされているかどうかを確認したいと思います。
現在、これを行うためにgetChildAt(0).getTop()を使用しています。最初の描画でgetChildAt(0).getTop()の値を保存し、後続の描画でgetChildAt(0).getTop()と比較します。
しかし、これはハッキーなようで、時々間違った結果をもたらすようです。
より良いアイデアはありますか?
を使用してみてくださいonScrollListener
setOnScrollListener(this);
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if(firstVisibleItem == 0){
//do stuff here
}
}
は GridView の最初の表示項目を返しますが、それgetChildAt(0)
はあなたが望むものではないと思います。
メソッドを使用yourGridView.getFirstVisiblePosition()
すると、データ アダプタの最初の可視位置が返されます。これが必要です。