2013-11-26 6 views
0

Я делаю приложение, которое генерирует динамически макет и все виды внутри него. Когда пользователь нажимает кнопку, мне нужно удалить макет (со всеми его видами) и восстановить его новыми сведениями. Я искал решение, и я нашел следующий метод:Android - View.GONE - правильный путь?

View.GONE 

Мой вопрос, если это правильный путь, чтобы продолжить, потому что я не знаю, если пользователь удалить и переделать макет 100 раз, сколько памяти использует эта вещь. View.GONE не очищает память за то, что я понял.

ответ

1

Все внутренние представления называются детскими видами. Так что если вы хотите, чтобы удалить вид ребенка, вы можете позвонить в removeView (View view)

Если вы хотите удалить все мнения:

viewGroup.removeAllViews() 

http://developer.android.com/reference/android/view/ViewGroup.html#removeAllViews()

+0

Я не хочу удалять дочерний вид, но я хочу удалить макет, содержащий дочерние представления, поэтому я могу удалить все, просто удалив макет. – FeFe

+0

Теперь вы видите свое редактирование. removeAllViews может быть решением. Таким образом, я могу удалить все виды, которые я добавляю в макет, не так ли? – FeFe

+0

С помощью метода removeView() вы можете достичь того, чего хотите. У вас могут быть вложенные представления. То есть ваши первые дочерние представления будут макетами, и эти дочерние макеты, в свою очередь, могут содержать дополнительные представления. Теперь вы можете просто добавить/удалить внешние дочерние представления (layout) parent.addView() и parent.removeView() «parent» - это самый внешний макет, определенный в XML-файле макета. Надеюсь, вы понимаете, что я пытаюсь сказать. –

1

Вы можете удалить вид на:

((ViewManager)view.getParent()).removeView(view); 

В противном случае, если вы желаете, чтобы заселить новые данные, вы можете просто изменить содержание/текст в представлениях, а не удалять их. Так или иначе.

Редактировать

Чтобы удалить макет будет так, как вы предложили.

findViewById(R.id.layout).setVisibiliy(View.GONE); 
+0

Я не хочу, чтобы удалить точку зрения, но Я хочу удалить макет, со всеми представлениями внутри. – FeFe

+0

Ах! Проверьте мое редактирование выше. – Brianjs

+0

Итак, я снова задаю свой вопрос, если пользователь удаляет и переделывает макет 100 раз, это невероятное использование памяти? – FeFe

Смежные вопросы