Android - как убрать вид линейного макета - PullRequest
12 голосов
/ 05 января 2012

В моем приложении я динамически добавляю представление в линейный макет.каждое представление состоит из одной кнопки, если вы нажмете на нее, то представление будет удалено.Как обновить линейный макет?потому что, когда я удалил любое представление, тогда позиции представления будут изменены.

Ответы [ 8 ]

15 голосов
/ 05 января 2012

Для удаления любого вида вы можете использовать

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);
    }
});
5 голосов
/ 05 января 2012

Ваш вопрос не так ясен. Но вы можете попробовать установить видимость как видимость = ушел.

2 голосов
/ 05 января 2012

Удаляя или добавляя представления, линейное расположение должно снова измерять и размещать все его дочерние элементы, поэтому они перемещаются. Вы можете просто попытаться установить видимость невидимым.

myLinearLayout.setVisibility(View.INVISIBLE);

любой вид, установленный как невидимый, по-прежнему сохраняет свой размер и расположение в макете, но больше не виден.

1 голос
/ 05 января 2012

Как обновить линейный макет?

linearLayoutObject.invalidate()

Как удалить элемент из линейного макета?

linearLayoutObject.removeView(View view);

или

linearLayoutObject.removeViewAt(int index);

Надеюсь, это поможет ..

0 голосов
/ 09 декабря 2013

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

Я надеюсь, что эта помощь

0 голосов
/ 05 января 2012

Просто используйте linearLayout.removeView (View view);Это обновится автоматически.

0 голосов
/ 05 января 2012

используйте просмотр списка с адаптером для динамического заполнения данных (потому что для этого они созданы), и всякий раз, когда ваши данные или пользовательский интерфейс меняются, создайте новый адаптер (набор данных) и уведомите адаптер об изменении.

0 голосов
/ 05 января 2012

Вы пробовали

setContentView(R.layout.main);

после удаления?

...