В простой карточной игре, которую я хочу развить, у меня есть три кнопки: button1, button2 и button3. button1 создает два изображения в табло и отображает изображение. Когда нажата кнопка2 и/или кнопка3, она динамически добавляет изображение в табло через сквозной макет. Когда игра закончена, я хочу, чтобы пользователь нажал кнопку1 и начал все сначала. Я могу это сделать, но проблема в том, что изображения, которые были ранее отображены нажатием кнопки2 и кнопки3, также отображаются. Я хочу, чтобы их удаляли при нажатии кнопки1. Как я могу удалить их при нажатии кнопки1? Пожалуйста, помогите мне!Как удалить динамически раздутые представления?
ответ
Как и вы, вы можете удалить их. Просто позвоните removeViewAt(int index)
или removeView(View view)
в родительском контейнере, чтобы удалить нужные вам виды.
В качестве альтернативы, если вы планируете повторно использовать их, вы можете просто установить их видимость на GONE
. Тогда вы могли бы вернуть их без расходов на раздувание их снова.
Если вы позволяете надувнику автоматически прикреплять завышенные изображения к родительскому объекту, вам нужно будет отслеживать положение добавленных видов. Вы можете использовать getChildCount
для родителя непосредственно перед раздуванием, чтобы найти индекс следующего вида, который будет добавлен.
вы можете использовать ViewGroup.removeView(View v);
что-то вроде этого:
tblRow.removeView(button2);
Я сделал это, но он не добавляет изображение, когда я нажимаю кнопку1. Я просто хочу удалить образы изображений, которые отображаются на развороте макета. И я не хочу удалить кнопку! Я хочу удалить imageViews. – Nush77
, затем передайте removeView() ссылку на ImageView, которую вы хотите удалить, а не кнопку. Если вы отредактируете свой вопрос и опубликуете какой-то код, который вы используете, нам будет намного легче дать вам конкретное решение. Как сейчас сейчас сложно сказать, что происходит в вашей программе на основе того, что вы опубликовали. – FoamyGuy
вот как я добавляю затем удалить View 5 секунд (в другом контексте)
final LinearLayout linearLayout = context.getResources().getLayout(R.layout.activity_main)
LayoutInflater inflater = LayoutInflater.from(linearLayout.getContext());
final View details = inflater.inflate(R.layout.extra_details, linearLayout, false);
linearLayout.addView(details);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if (linearLayout.findViewById(R.id.extra_details) != null){
linearLayout.removeView(details);
}
}
}, 5000);
то же использование сценарий находится в контексте onClickListener. Узнать больше здесь https://www.bignerdranch.com/blog/understanding-androids-layoutinflater-inflate/
- 1. нажмите динамически раздутые представления с помощью robotium
- 2. Как удалить пользовательские представления?
- 3. Извлеките dyamically раздутые макеты для работы с
- 4. Пользовательские виды или раздутые макеты?
- 5. Django: Как удалить динамически динамически?
- 6. Как динамически показывать содержимое представления
- 7. Как динамически создавать частичные представления
- 8. Android: раздутые элементы не в материальном дизайне
- 9. Android динамически складывает представления
- 10. Динамически создавая представления
- 11. Как динамически удалять случайные представления в Android?
- 12. Как удалить динамически созданный макет
- 13. Как удалить PictureBoxes динамически?
- 14. Как удалить логику из представления
- 15. Динамически добавлять представления в tablerow
- 16. Как динамически загружать частичные представления MVC5
- 17. Как изменить положение динамически созданного представления
- 18. Как ограничить динамически созданные представления до 10?
- 19. Android - Как складывать представления, добавленные динамически?
- 20. Как лучше всего изменить высоту представления динамически?
- 21. Динамически добавлять представления ASP.NET MVC
- 22. knockoutjs вложенные представления динамически загружены
- 23. XCUITest и динамически сгенерированные представления
- 24. Удалить/Удалить динамически созданный частичный вид mvc
- 25. Android - поиск идентификатора представления динамически
- 26. Надувные представления динамически через приложение
- 27. Как удалить динамически созданный div?
- 28. Как удалить динамически добавленный jquery
- 29. Как удалить кнопки, созданные динамически
- 30. Как добавить/удалить eventSources динамически
Thanx Ted. Попробуй это и сообщите, если это сработает! – Nush77
removeView (view) не работал для меня. – usman
@usman - Вы уверены, что представление, которое вы передали в качестве аргумента, на самом деле является прямым дочерним элементом представления, для которого вы назвали 'removeView'? –