@p4p

Unity list view проблема реализации, как пофиксить?

У меня 1000 объектов для отображения которых я использую scroll view. Я показываю 60 объектов на старте, когда тяну вниз, я догружаю +10 вниз а сверху удаляю -10. Проблема вот в чем: из за того что контейнер объектов всегда остается одной высоты (так как я делаю +10 и -10) не получается скроллинга. Получается эффект замены одних объектов другими. Нижние надвигаются вверх и наоборот. Как мне реализовать нормальный скроллинг с подзагрузкой? Какие есть идеи?
  • Вопрос задан
  • 38 просмотров
Пригласить эксперта
Ответы на вопрос 1
DanceM
@DanceM Куратор тега Unity Game Engine
Кто хочет -ищет способ, кто не хочет -ищет причину
Недавно делал подобный список.

Можно увеличить контейнер до максимального размера (чтобы все элементы влезли), после отключить автоподстройку размера и автовыравнивание элементов в списке (если используете ContentSizeFitter и HorizontalLayoutGroup). Получается контейнер в полном размере, элементы на своих местах, всё скроллится и можно включать/отключать элементы списка без проблем.

Но в таком случае важный момент - при одновременном отключении на старте ContentSizeFitter и HorizontalLayoutGroup верстка (размер) ломается, так что я отключаю поочередно после первого кадра. Типа так:
IEnumerator DisableUiLayout()
	{
   		//disable UI layouts after resize on start
		yield return null;
    	GetComponent<ContentSizeFitter>().enabled = false;
    	yield return null;
    	GetComponent<HorizontalLayoutGroup>().enabled = false;
    	yield return null;
    	layoutDisabled = true;
	}

PS: Ну и Canvas не выйдет так просто масштабировать с таким подходом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
GD Company Санкт-Петербург
от 120 000 до 150 000 ₽
Mystery Tag Новосибирск
от 80 000 до 110 000 ₽
от 130 000 до 200 000 ₽
02 апр. 2020, в 14:30
50000 руб./за проект
02 апр. 2020, в 14:19
15000 руб./за проект