المرن - تغيير الموقف من شريط التمرير إلى أعلى مكونا HorizontalList

StackOverflow https://stackoverflow.com/questions/615074

سؤال

وافتراضيا، فإن شريط التمرير الأفقي عنصر HorizontalList يكون في القاع. هل هناك طريقة لإعادة وضعها لذلك هو في أعلى؟

وفقط من أجل الوضوح، وأنا لا أقصد تحريك الموقف التمرير باستخدام scrollToIndex أو horizontalScrollPosition أو ما شابه ذلك، ولكن الموقف المادي الفعلي للعنصر التمرير.

وأي اقتراحات سيكون موضع تقدير جدا!

هل كانت مفيدة؟

المحلول

وكنت أبحث عن شيء مماثل نفسي منذ فترة، وجدت <لأ href = "http://yourpalmark.com/2008/06/18/reposition-scrollbars-in-flex-components/" يختلط = "نوفولو noreferrer "> هذا المنصب . انتهى بي المطاف حل مشكلتي في طريقة أخرى، لذلك لم تستخدم هذا الحل، إلا أنه قد عمل ما تريد.

نصائح أخرى

ولقد كان لتفعل الشيء نفسه في وقت سابق. اضطررت الى حفر حولها في الفئات الأساسية (لمعالجة بعض القضايا اخفاء / لتحديد المواقع) وهذا ما خطرت لي:

package
{
    import flash.display.DisplayObject;

    import mx.controls.HorizontalList;
    import mx.core.EdgeMetrics;

    public class ReverseHList extends HorizontalList
    {
        override 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 (horizontalScrollBar && horizontalScrollBar.visible)
            {
                horizontalScrollBar.setActualSize(w - vm.left - vm.right,
                                                  horizontalScrollBar.minHeight);
                horizontalScrollBar.move(vm.left, vm.top);

                horizontalScrollBar.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 : ht;

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

        override protected function 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);
        }

    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top