2013年7月29日月曜日

Android - ListView で下までスクロールしているかを調べる

getLastVisiblePosition を使って、最後のアイテムが表示されているかを調べて、 getBottom でそのアイテムのビューが下まで表示されてるかを調べる。

2013年7月20日土曜日

Android - ListView で Overscroll (ばねのように戻る挙動)

Android Overscroll を使う簡単な方法
を見ればよい。以下はその他の自分メモ。

ヘッダに設定した画像は、縦横スケールされる。任意のサイズの画像を表示させる場合、OverScroll の大きさと、ListView の幅をもとに、Drawable の大きさを合わせて作っておく必要がある。以下は 64x64の画像を真ん中に置くような Drawable を作成してる。

あとは onOverScrolled したときに任意のコードを実行できるように、interface を持つようにしていた。 もともと「引っ張って更新」を実現させるために導入してたけど、リストの項目が少ないときに空いている部分をタッチしても引っ張れないことから結局使わなかった。結局 ListView を Override したクラスの onTouchEvent に、一番上(getFirstVisiblePosition() == 0 && view.getTop() == 0)なら云々みたいな処理を加えてる。

Android - ViewGroup でタッチイベントを処理する : intercept

結局使わなかったのでうろ覚えだけど...

ViewGroup の intercept を override して、適当な条件で true を返すようにすると ViewGroup 側の onTouchListener が呼べる。
一度 intercept すると、一連のタッチイベントが終わるまでは ViewGroup 側がイベントを受け取る。
常に false を返すようにしつつ何か処理を加えるとかにも使える。