2012-01-05 12 views
7

私のアプリケーションでは、線形レイアウトにビューを動的に追加しています。各ビューは1つのボタンで構成され、そのボタンをクリックするとビューが削除されます。線形レイアウトをリフレッシュするには?なぜなら、ビューを削除すると、ビューの位置が変更されるからです。アンドロイド - 線形レイアウトのビューを削除する方法

答えて

10

あなたがレイアウトから任意のビューを削除するロジックを次

ll.removeView(view)// to remove particular view 
ll.removeViewAt(position);// to remove view from particular position 

使用を使用することができます任意のビューを削除するには

ll.post(new Runnable() { 
    public void run() { 
     ll.removeView(view); 
    } 
}); 
+1

なぜ、removeAllViews()を以下のように使用しなかったのですか:ll.removeAllViews(); – NrNazifi

4

あなたは疑問が明らかです。しかし、あなたは視界=消えたとしてビューを設定しようとすることができます。

0

あなたが削除した後

setContentView(R.layout.main); 

を試しましたか?

+0

このヘルプを願っていますが、あなたがdynamicaly – quux

0

線形レイアウトをリフレッシュするにはどうすればよいですか?リニアレイアウトから項目を削除する方法

linearLayoutObject.invalidate() 

linearLayoutObject.removeView(View view); 

または

linearLayoutObject.removeViewAt(int index); 

私はそれはのLinearLayoutは彼らが動く理由である再びそのすべての子を測定し、レイアウトするために持っているビューを削除または追加することで...

+0

の要素を作成しますが、リンクを「修正」の編集を示唆して停止してくださいすることを忘れてしまいました。リンクテキストを "Link1"などと置き換えるのはひどい編集です。あなたはそれらを修正しなければならない人々のために仕事をしています。実際にリンクが*実際に動作するはずのものについては私の編集を参照してください:http://stackoverflow.com/q/8741270/229044 – meagar

2

に役立ちます願っています。可視性を不可視に設定してみてください。

myLinearLayout.setVisibility(View.INVISIBLE); 

invisibleに設定されているビューは、サイズと位置を保持していますが、表示されなくなります。

0

データを動的に書き込むためのアダプタであるlistviewを使用してください(データが設定されているため)。データまたはUIが変更されたときは常に新しいアダプタ(データセット)を作成し、

0

単に使用linearLayout.removeView(ビュービュー)。 これは自動的に更新されます。

0

layout.removeAllViewsInLayout(); layout.invalidate();

私は、ああ

関連する問題