Я устанавливаю выделенный элемент в s: Компонент списка с помощью ActionScript, он работает, но List не прокручивает выбранный элемент - вам нужно прокручивать с помощью полосы прокрутки или мыши. Можно ли автопрокрутить выбранный элемент? Благодаря !Прокрутка к выбранному элементу в компоненте Flex 4 Spark List
ответ
Try в s:List
метод ensureIndexIsVisible(index:int):void.
В гибком-3 есть scrollToIndex
метод и, следовательно, вы можете вызвать
list.scrollToIndex(list.selectedIndex);
Я считаю, что это должно работать в гибком-4 тоже.
К сожалению, нет. В Spark List такого метода нет, но он есть для компонента Halo List. Flex 4 развивается и все еще находится в бета-версии, надеюсь, что эта проблема будет решена. –
Вы, вероятно, хотите получить доступ к скроллера в списке непосредственно и сделать что-то вроде:
list.scroller.scrollRect.y = list.itemRenderer.height * index;
Я обнаружил, что вы не можете напрямую изменить значение внутри scrollRect, вместо этого вам нужно обновить scrollRect новым прямоугольником?как [this] (http://www.actionscript.org/forums/showthread.php3?t=190795) – eldamar
Вы можете умножить высоту элемента по его индексу и передать это значение:
yourListID.scroller.viewport.verticalScrollPosition
Недавно я совершил это в одном из моих проектов, имеющих определенный размер для моих позиций в группе ..
<s:Scroller x="940" y="0" maxHeight="465" maxWidth="940" horizontalScrollPolicy="off" verticalScrollPolicy="off">
<s:HGroup id="tutPane" columnWidth="940" variableColumnWidth="false" gap="0" x="0" y="0">
</s:HGroup>
</s:Scroller>
После этого моих кнопок управления для манипуляций работали приращение частный «targetindex» переменный, то я назвал функцию checkAnimation, которая используется класс Animate, в комбо с SimpleMotionPath и сравнением между tutpane.firstIndexInView и Тарг et index. Это изменило «horizontalScrollPosition» группы.
Это позволило отдельные элементы управления, по существу, действуют как полоса прокрутки, но у меня было требование сдвинув управления для просмотра выбранного элемента .. Я считаю, что этот метод может работать для автоматического выбора элементов, а
Для Spark:
list.ensureIndexIsVisible(index);
Я видел эту основную идею здесь ... http://arthurnn.com/blog/2011/01/12/coverflow-layout-for-flex-4/
public function scrollGroup(n : int) : void
{
var scrollPoint : Point = theList.layout.getScrollPositionDeltaToElement(n);
var duration : Number = (Math.max(scrollPoint.x, theList.layout.target.horizontalScrollPosition) - Math.min(scrollPoint.x, theList.layout.target.horizontalScrollPosition)) * .01;
Tweener.addTween(theList.layout,{ horizontalScrollPosition: scrollPoint.x , time:duration});
}
protected function theList_caretChangeHandler(event:IndexChangeEvent):void
{
scrollGroup(event.newIndex);
event.target.invalidateDisplayList();
}
Эта функция выделит верхнюю часть списка в Flex 4+. Он учитывает высоту элемента, поэтому он будет работать для списков с разными элементами разной высоты.
private function scrollToIndex(list:List,index:int):void
{
if (!list.layout)
return;
var dataGroup:DataGroup = list.dataGroup;
var spDelta:Point = dataGroup.layout.getScrollPositionDeltaToElement(index);
if (spDelta)
{
dataGroup.horizontalScrollPosition += spDelta.x;
//move it to the top if the list has enough items
if(spDelta.y > 0)
{
var maxVSP:Number = dataGroup.contentHeight - dataGroup.height;
var itemBounds:Rectangle = list.layout.getElementBounds(index);
var newHeight:Number = dataGroup.verticalScrollPosition + spDelta.y
+ dataGroup.height - itemBounds.height;
dataGroup.verticalScrollPosition = Math.min(maxVSP, newHeight);
}
else
{
dataGroup.verticalScrollPosition += spDelta.y;
}
}
}
//try this
this.callLater(updateIndex);//where you want to set the selectedIndex
private function updateIndex():void
{
list.selectedIndex = newIndex;
list.ensureIndexIsVisible(newIndex);
}
Более короткая версия: 'callLater (list.ensureIndexIsVisible, [list.selectedIndex])', но все же не лучшее решение - иногда вызывает индексы вне диапазона ошибок –
Это работает для меня. пришлось использовать callLater.
list.selectedItem = "MyTestItem"; //or list.selectedIndex = 10;
this.callLater(updateIndex); //dispatch an update to list
private function updateIndex():void {
list.ensureIndexIsVisible(list.selectedIndex);
}
Это ошибка - вы можете увидеть демонстрацию и обходной путь на https://issues.apache.org/jira/browse/FLEX-33660
Этот обычай расширение списка компонент работал для меня:
<s:List
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
valueCommit="callLater(ensureIndexIsVisible, [selectedIndex])">
</s:List>
- 1. ListView прокрутка к выбранному элементу
- 2. Прокрутка Java JList к выбранному элементу
- 3. Flex 4: Перечисление Spark List items
- 4. Элемент прокрутки Flex 4 Spark List
- 5. tinyMCE 4: добавить класс к выбранному элементу
- 6. Что эквивалентно элементу itemChangeEffect в Spark List?
- 7. flex Multicolumn spark list
- 8. кодовое имя одного списка прокрутка к выбранному элементу
- 9. Запрашивать свойство на компоненте Spark Combox в Flex 4
- 10. Прокрутка TreeTable к элементу
- 11. list-box загружает элементы, затем сохраняет путь к выбранному элементу
- 12. дополнение запроса к выбранному элементу
- 13. Как добавить Flex 4 spark List Элемент пользовательских свойств
- 14. Привязать к TreeView выбранному элементу
- 15. Привязать кнопку к выбранному элементу
- 16. UICollectionView Прокрутка к элементу
- 17. Перейти к выбранному элементу в ListBox
- 18. Привязка к выбранному элементу в ItemsControl
- 19. Получение пути к выбранному элементу в PowerShell
- 20. Прокрутка к выбранному Treeviewitem в scrollview
- 21. Прокрутка к выбранному узлу в дереве. Прайсы
- 22. Доступ к полосе прокрутки в групповом компоненте Flex 4
- 23. привязка столбца datagrid к выбранному элементу property
- 24. Применить параметры к определенному выбранному элементу выбора
- 25. Прокрутка к элементу в списке
- 26. обновить ItemRenderer каждого элемента в компоненте List Flex
- 27. Flex Spark view-port Прокрутка вопроса?
- 28. Skinning a Spark HSlider в Flex 4
- 29. эффекты, применяемые к родительскому элементу, а не выбранному элементу
- 30. Доступ к выбранному элементу из Repeater
Спасибо, но, похоже, работает только в последних версиях Flex 4 SDK (Flex Builder 4 Beta 2). Я понял, что работаю с одним из старых сборников, у которого пока нет этого метода. –
это также прокручивается так, чтобы верх элемента был виден, если элемент высок, это не прокручивается до нижней части. – JTtheGeek
@JTtheGeek. Да, в Spark List 4.6 кажется, что вы должны дважды щелкнуть, чтобы прокрутить вниз. – Nemi