めも
プログラム中にレイアウトを記述する場合
onCreate()だとgetWidth()とかできないのでonWindowFocusChanged()を使う。
ViewFlipperにaddViewする際の問題について
こちらのぶろぐAndroid(X06HT Desire) ページをめくる動作を実装してみるサンプル - グロブぐらいでしか触れてる方がみつからなかったのだけど。
ViewFipperの先頭にaddviewしたい、そんな時。
addView(View view,int index)使えばいいのかなと思いきやうまくいかない。
追加はされるのだが、showPreViousしてみるとどうにも表示するviewがずれたりするのだ。
どうやらshowpreViousは現在のviewのインデックスを参考に先頭から何番目のviewを表示する…みたいなことをやってるらしい。
viewflipperの中に5つのviewがあり、3番目のviewを表示してるとする。
1 2[3]4 5
ここからshowPreviousすると中では[3-1]番目のviewを表示しようとするらしい。
じゃあこの先頭にView aを追加して
a 1 2[3]4 5
直後にshowPreviousすると、なぜかindexが更新されておらず、さっきと同じように[3-1]番目のviewを表示してしまい結果として
a[1]2 3 4 5
となってしまうっぽい。
法則性がわかったけどどの時点でインデックスが更新されるかは謎。
とりあえず先頭にaddViewしてshowPreviousするなら直後にshowNextすれば表示したいものは出るはず。
根本的な解決にはなってないよなぁ。アニメーションとかは難しくなりそう。