ViewGroup#removeViewメソッドの引数が
nullでないのにnullだったため、動かなくなった.
まず、引数がnullかどうか確かめよう(引数をnullにしても例外が発生しないので気づかなかった).
以下の方法は、消去したいViewに変数を割り当てなくてもできる方法である
コードは以下のようである.
parentLinearLayout.removeView(childLinearLayout);
どうも描画中のアニメーションのせいで、動かないらしい.
上記サイトの方法だと、LinearLayoutを継承したクラスを作って、削除するときのアニメーションを表示させないようにしているようだ.
この方法だとかなりの手間がかかりそうだったので、代わりにViewGroup#removeViewAtメソッドを使ったところ、うまくいった.
parentLinearLayout.removeViewAt(index);
indexとしてchildLinearLayoutのポジションを指定する.
ちなみに、子Viewのindexを取得するには、ViewGroup#indexOfChildメソッドを使う.
int index = parentLinearLayout.indexOfChild(childLinearLayout);
参考にしたサイト
0 件のコメント:
コメントを投稿