Как добавить изображения в макет ограничений - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть макет ограничения.Я добавил изображения в Constraint Layout программно со случайными картинками.Когда пользователь нажал кнопку «Новая игра», я хочу удалить все изображения, созданные программным способом, и воссоздать их случайно.

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

CLCarrier.addView (Cards [i], -1);

1 Ответ

0 голосов
/ 03 декабря 2018

Вот несколько различных способов сделать это.

Удалите все представления из вашего ConstraintLayout

Все подклассы ViewGroup поддерживают метод removeAllViews().Это удалит всех дочерних элементов, находящихся в данный момент в ViewGroup, поэтому это подходит только в том случае, если вы хотите избавиться от всего .Если есть некоторые виды, которые вы хотите сохранить, это не сработает.

Отслеживайте ImageViews по мере их добавления, а затем удаляйте их по одному

Возможно, вы сохранитеList<ImageView> images переменная где-то, и когда вы добавляете изображения в свой ConstraintLayout, вы также вызываете images.add(myImageView).После этого вы получите коллекцию представлений, с которыми вы можете перебирать и вызывать removeView() on:

for (ImageView image : images) {
    constraintLayout.removeView(image);
}

Повторно надуть исходную ConstraintLayout

Если вы не хотите использовать removeAllViews() и вы также не хотите отслеживать все представления, чтобы потом их можно было удалить, вы можете повторно инициализировать ConstraintLayout, повторно взвинчивая исходный макет.

LayoutInflater inflater = LayoutInflater.from(this); // requires a `Context` object
constraintLayout = inflater.inflate(R.layout.constraint_layout, parent, false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...