Flex List ограничить количество элементов - PullRequest
0 голосов
/ 09 марта 2012

Можно ли определить свойство для ограничения количества элементов, которые будут отображаться в списке mx: List? Я читал об установке свойства rowCount, но не вижу никакого эффекта. Можно ли применить фильтр для достижения этой цели? Я хотел избежать удаления элементов из коллекции списков / массивов, а просто «спрятать» их. Можно ли это сделать?

Ответы [ 2 ]

2 голосов
/ 09 марта 2012

Вы можете «скрыть» элементы от отображения в классе на основе списка, не изменяя исходные данные, лежащие в основе, используя класс Collection, такой как ArrayCollection, и фильтруя данные.

Прочитайте эти документы по фильтрации коллекции .

Цитировать:

Вы используете функцию фильтра, чтобы ограничить представление данных в коллекции подмножество исходного объекта данных. Функция должна занять один Параметр объекта, который соответствует элементу коллекции и должен вернуть логическое значение, указывающее, включать ли элемент в Посмотреть. Как и в случае сортировки, когда вы указываете или изменяете функцию фильтра, Вы должны вызвать метод refresh () для коллекции, чтобы показать отфильтрованные результаты. Чтобы ограничить представление коллекции массива строк содержат только строки, начинающиеся с M, например, используйте следующее функция фильтра:

public function stateFilterFunc(item:Object):Boolean
{
    return item >= "M" && item < "N";
}
1 голос
/ 09 марта 2012

Другой вариант - использовать новую коллекцию массивов и получать ограниченные элементы из своей большой коллекции массивов:

//get first 10 elements
myArrayCollection = new ArrayCollection( myBigArrayCollection.toArray().slice(0,9) );

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

//this is just a (very) simple example
//page = integer (counter) for knowing which page the user is on
page = 0;
page_low = page*10;
page_high = page_low + 9;
myArrayCollection = new ArrayCollection( myBigArrayCollection.toArray().slice(page_low,page_high) );

(использование фильтра - более элегантное решение)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...