3


0

デフォルトでは、Horizo​​ntalListコンポーネントのHorizo​​ntal ScrollBarは一番下になります。 一番上になるように位置を変更する方法はありますか?

わかりやすくするために、scrollToIndexやhorizo​​ntalScrollPositionなどを使用してスクロール位置を移動するのではなく、スクロールバーコンポーネントの実際の物理的な位置を指定します。

任意の提案は非常に高く評価されます!

2 Answer


3


私はしばらく前に自分自身に似たものを探していて この記事を見つけました。 私は結局別の方法で私の問題を解決することになったので、その解決策を使わなかった、しかしそれはあなたが望むもののために働くかもしれない。


1


私は以前同じことをしなければなりませんでした。 私は(いくつかのマスキング/ポジショニングの問題を処理するために)基本クラスを掘り下げる必要があり、これが私が思い付いたものです:

package {import flash.display.DisplayObject;

import mx.controls.Horizo​​ntalList; mx.core.EdgeMetricsをインポートします。

パブリッククラスReverseHListは、Horizo​​ntalListを継承します。{protected function updateDisplayList(unscaledWidth:Number、unscaledHeight:Number)をオーバーライドします。:void {super.updateDisplayList(unscaledWidth、unscaledHeight);}

var w:Number = unscaledWidth; var h:Number = unscaledHeight; var vm:EdgeMetrics = viewMetrics; if(horizo​​ntalScrollBar

horizo​​ntalScrollBar.enabled = enabled; }

var mask:DisplayObject = maskShape;

var wd:Number = w  -  vm.left  -  vm.right; var ht:Number = h  -  vm.top  -  vm.bottom;

mask.width = wd <0? 0:wd; mask.height = ht <0? 0:

mask.x = vm.left; mask.y = vm.top vm.bottom; }

保護された関数を無効にします。adjustListContent(unscaledWidth:Number = -1、unscaledHeight:Number = -1):void {super.adjustListContent(unscaledWidth、unscaledHeight);}

var lcx:Number = viewMetrics.left listContent.leftOffset; var lcy:Number =(viewMetrics.top listContent.topOffset)viewMetrics.bottom; listContent.move(lcx、lcy); }

}}