@schwiz, как мы можем сбросить идентификатор представления в этом случае. Моя проблема заключается в том, что даже после завершения моей деятельности, когда добавляется следующее представление, идентификатор представления увеличивается. Я хочу, чтобы идентификатор представления по умолчанию был равен 1, когда я снова вернусь к этому действию .
AndroidNewBee
Большое спасибо за этот ответ дал
рубчик
ViewGroup расширяет View реализует ViewParent, ViewManager. лучше назвать это кастингом на (ViewGroup)
Mercury
24
Используйте ViewStub и укажите макет представления, которое вы хотите переключить. Смотреть:
Если вы хотите скрыть / показать, вы можете использовать .setVisibility (View.INVISIBLE) и .setVisibility (View.VISIBLE). Когда представление невидимо, пользователь не может с ним взаимодействовать.
dennisschagt
Скажем, у меня есть textView с прикрепленным к нему onClickListener. Если я заставлю его исчезнуть, а затем нажму на него, событие все равно сработает?
ahitt6345 04
22
Это лучший способ
LinearLayout lp =newLinearLayout(this);
lp.addView(newButton(this));
lp.addView(newImageButton(this));// Now remove them
lp.removeViewAt(0);// and so on
Если у вас есть макет xml, не нужно добавлять динамически. Просто вызов
Какая разница в производительности? Я имею в виду разницу в производительности при их динамическом добавлении или помещении в статический файл макета xml и позволять ему надуваться?
stdout
19
Чтобы добавить представление в макет, вы можете использовать addViewметод ViewGroupкласса. Например,
Он устранил мою проблему больше, чем любой другой ответ. Полезно, если, как и я, ваш фон или некоторые параметры предотвращают полное исчезновение представления.
Виртус
1
это потому, что View.GONE не удаляет представление для макета, а только делает его невидимым и не занимает места для целей макета.
Виктор
6
Отличный ответ от Самира и Абеля Терефе. Однако, по моему мнению, когда вы удаляете представление, вы хотите удалить представление с определенным идентификатором. Вот как это сделать.
1, присвойте представлению идентификатор при его создании:
привет, если вы новичок в Android, используйте этот способ. Примените свое представление, чтобы оно исчезло. GONE - это один способ, иначе получите родительский вид и удалите оттуда дочерний элемент ... иначе получите родительский макет и используйте его метод удалить все дочерние parentView.remove (child)
Ответы:
Я сделал это так:
источник
(ViewGroup)
:)Используйте ViewStub и укажите макет представления, которое вы хотите переключить. Смотреть:
Чтобы исчезнуть:
источник
Это лучший способ
Если у вас есть макет xml, не нужно добавлять динамически. Просто вызов
источник
Чтобы добавить представление в макет, вы можете использовать
addView
методViewGroup
класса. Например,Также существует ряд методов удаления. Проверьте документацию ViewGroup . Один простой способ удалить представление из макета может выглядеть так:
источник
Для изменения видимости:
Для удаления:
источник
Отличный ответ от Самира и Абеля Терефе. Однако, по моему мнению, когда вы удаляете представление, вы хотите удалить представление с определенным идентификатором. Вот как это сделать.
1, присвойте представлению идентификатор при его создании:
2, удалите представление с идентификатором:
источник
вы можете использовать addView или removeView
Ява:
Котлин:
источник
привет, если вы новичок в Android, используйте этот способ. Примените свое представление, чтобы оно исчезло. GONE - это один способ, иначе получите родительский вид и удалите оттуда дочерний элемент ... иначе получите родительский макет и используйте его метод удалить все дочерние parentView.remove (child)
Я бы предложил использовать подход GONE ...
источник
Я удаляю представление, используя метод start и count, я добавил 3 представления в линейном макете.
view.removeViews (0, 3);
источник
Многоразовое расширение Kotlin
Упростите удаление
Добавьте это расширение:
Упростите сложение
Вот несколько вариантов:
источник