@p4p

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

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

Можно увеличить контейнер до максимального размера (чтобы все элементы влезли), после отключить автоподстройку размера и автовыравнивание элементов в списке (если используете 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 не выйдет так просто масштабировать с таким подходом.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
PHYGITALISM Москва
от 70 000 до 100 000 руб.
PR-solution Саранск
от 80 000 до 150 000 руб.
ГК АРТИ Москва
от 150 000 руб.
16 июл. 2019, в 13:48
15000 руб./за проект
16 июл. 2019, в 13:42
10000 руб./за проект