簡體   English   中英

如何獲得Flex容器滾動到最后一個位置?

[英]How can I get a Flex container to scroll to the last position?

我正在創建一個聊天窗口,非常類似於此示例

http://demo.seanhess.net/oneshots/scrolling.swf

每當添加聊天時,我都希望它完全顯示最后一條消息。 我正在使用maxVerticalScrollPosition設置列表上的滾動位置,但這始終是錯誤的(請參見示例)。 它會連續約下沖。 我已經用常規容器嘗試過了,它做同樣的事情。 如果我執行maxVerticalScrollPosition + 1,則可以正常工作,但是如果最后一條消息特別長,則會被截斷(僅顯示頂部)。

我如何才能滾動到容器的實際底部?

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">

    <mx:Script>
        <![CDATA[
            protected function addChat():void
            {
                collection.addItem(new String(input.text));
                list.verticalScrollPosition = list.maxVerticalScrollPosition;
                input.text = "";
            }
        ]]>
    </mx:Script>

    <mx:Panel width="400" height="290">
        <mx:List id="list" width="100%" height="100%" variableRowHeight="true">
            <mx:dataProvider>
                <mx:ArrayCollection id="collection"/>
            </mx:dataProvider>
            <mx:itemRenderer>
                <mx:Component>
                    <mx:Text text="{data}"/>
                </mx:Component>
            </mx:itemRenderer>
        </mx:List>
        <mx:HBox width="100%">
            <mx:TextInput id="input" width="100%" enter="addChat()"/>
            <mx:Button label="add" click="addChat()"/>
        </mx:HBox>
    </mx:Panel>
</mx:Application>

將addChat()分成兩個函數,addChat()和addChatScrollToEnd()。 將聊天項添加到addChat()內,然后添加具有滾動行的callLater(addChatScrollToEnd)。

或者,您可以調用list.validateNow(),但出於性能原因,建議您不要調用它。

這應該為您工作。

    <mx:Script>
            <![CDATA[
                    protected function addChat():void
                    {
                            collection.addItem(new String(input.text));
                            callLater(function() {
                                    list.verticalScrollPosition = list.maxVerticalScrollPosition;
                            });
                            input.text = "";
                    }
            ]]>
    </mx:Script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM