It seems that i have to override qx.ui.virtual.layer.WidgetCell#_fullUpdate ?
On Sat, Jun 13, 2015 at 2:40 AM, Phyo Arkar <phyo.arkarl...@gmail.com> wrote: > Now i use this inside my custom class : Dynamic item sizes. > For that case , it dosen’t scroll to absolute bottom , sometimes it stop > at middle of the list. > > /* ************************************************************************ > > Copyright: > > License: > > Authors: > > ************************************************************************ */ > > /** > * This is the main application class of your custom application "phwabe" > * > * @asset(phwabe/*) > */ > qx.Class.define('phwabe.utils.list.InfiniList', { > extend: qx.ui.list.List, > > members: { > __deferredCall: null, > __scrollBottom: false, > > syncWidget: function(jobs) { > if (jobs.scrollBottom) { > this.scrollToY(1e99) > console.log("bottom") > // return > } > > var firstRow = this._layer.getFirstRow(); > var rowSize = this._layer.getRowSizes().length; > for (var row = firstRow; row < firstRow + rowSize; row++) { > var widget = this._layer.getRenderedCellWidget(row, 0); > if (widget !== null) { > var height = widget.getSizeHint().height; > this.getPane().getRowConfig().setItemSize(row, height); > } > } > > }, > > _initLayer: function() { > this.base(arguments); > this._layer.addListener("updated", this._onUpdated, this); > }, > > _onUpdated: function(event) { > if (this.__deferredCall === null) { > this.__deferredCall = new qx.util.DeferredCall(function() { > qx.ui.core.queue.Widget.add(this); > console.log("Updated") > > }, this); > } > this.__deferredCall.schedule(); > } > } > }); > > Can i get some advices? doing that _onUpdated also not working well. > > > On Wed, Jun 10, 2015 at 2:41 PM, Phyo Arkar <phyo.arkarl...@gmail.com> > wrote: > >> Thanks a lot! it works! >> >> On Wed, Jun 3, 2015 at 11:08 PM, Mustafa Sak <mustafa....@1und1.de> >> wrote: >> >>> First of all the list model will fire a change, which you should >>> listen to. >>> >>> >>> >>> But the time on changing the model is not the one, when the list widget >>> renders the change. So you have to wait till the queue has been flushed. >>> >>> The easiest way is to use the widget queue which will call a function >>> named syncWidget after the next render flush. >>> >>> >>> >>> So your code could be like this: http://tinyurl.com/pf33qvn >>> >>> >>> >>> *Mustafa Sak* >>> >>> Softwareentwickler >>> Mail Development >>> >>> 1&1 Mail & Media Development & Technology GmbH | Brauerstraße 48 | 76135 >>> Karlsruhe | Germany >>> Phone: +49 721 91374-6977 >>> E-Mail: mustafa....@1und1.de | Web: www.1und1.de >>> >>> >>> >>> *Von:* Phyo Arkar [mailto:phyo.arkarl...@gmail.com] >>> *Gesendet:* Dienstag, 2. Juni 2015 20:58 >>> *An:* qooxdoo-devel >>> *Betreff:* [qooxdoo-devel] Change of qooxdoo virtual list's length (new >>> item insert) >>> >>> >>> >>> What event to listen for change of qx.ui.list.List's Length and that new >>> added list item is ready ? >>> >>> >>> >>> I know qx.type.Array() have change event , but if i listen there and >>> scroll to bottom , it never got to the bottom . >>> >>> >>> >>> This what i am trying to do , but want to scroll after that last row is >>> added. >>> >>> this.chat_list.addListener("change", function() { >>> >>> console.log('model_changed') >>> >>> this.chat_list.scrollToY(1e99); >>> >>> },this) >>> >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> >>> _______________________________________________ >>> qooxdoo-devel mailing list >>> qooxdoo-devel@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel >>> >>> >> >
------------------------------------------------------------------------------
_______________________________________________ qooxdoo-devel mailing list qooxdoo-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel