乱丁・落丁ブラックホール
昨日のビューが表示されない問題は見落としていたところを見つけたので案外あっさりと修正できた。無事にページ分が表示されたのでよしよしと思っていたのだけれど、なにかがおかしい。よくよく見ると本来 2 ページ目であるはずのデータが表示されている。
スワイプして戻ってみようとしても、これよりも前にはページはないとイヤイヤをする。それではと次のページへと送ってみると、あらわれたのは同じ 2 ページ目。そうか、1 ページ目とどこかでおかしくなっているのかなあ、などと思いつつさらに次のページへと送ってみると、またまた 2 ページ目の内容が。
そんな莫迦な。ということで前に戻ってみようとすると、あろうことか前のページはないとばかりにイヤイヤをする。いや、今きたばかりではないか。どうなっているのだ。しかも、先ほどはひとつ前にも戻ることができるのを確認してから次にきたのに。
ひとまず次のページへ行ってみようと送ると今度は 3 ページ目に該当するページ。そしてアウトオブメモリーしたらしくアクティビティは終了して移動する前の最初のアクティビティに戻ったのだった。
アウトオブメモリー自体は画像の数が多くなるのでこのままでは駄目なのだというのは分かっているのだけれど、このページ情報はなにがなにやら。
デバッグで様子を見ていると PagerAdapter でページにあったデータを GridView で作ってから ViewPager に渡しているはずなのだが、はじめに Adapter の処理にはいかずに ViewPager.setAdapter(adapter) に行ってしまう。その後もう一度やってきて今度はようやく Adapter での処理にはいるというなんだか奇妙な動きをしているように見えるのだった。
もっとも奇妙とはいってもこちらが勝手にそう思うだけで、プログラムとしたらそれが当然と思って動いているわけであろうから、なぜそうなるのかを解明しないとどうにもまともに動作しないということになってしまった。
調べているとふたつの変数だかにアサインしなおされていてはじめのページが失われているのではないか、などというのは見つかったのだけれど、いまひとつよくわからない。困った。
| 固定リンク
コメント