ho lo stesso problema :(
Ho fatto una soluzione raccapricciante (funziona al 80%) A volte salta ancora al top. Si deve sapere, che ho una finestra con un layout di ' modulo '. Se si dispone di una finestra con (ad esempio) un layout di' fit 'con un xtype di' form '- potrebbe essere necessario modificare leggermente il codice. Ad esempio la riga el.child (". x-window-corpo", Fasle) non avrebbe funzionato.
init: function() {
this.control({
...
/** My Ext.window.Window is called reservationwindow **/
'reservationwindow': {
afterrender: function(comp) {
// comp is this Ext.Component == wrapper
var el = comp.getEl();
//extjs adds the scrollbar to the body element...
var elForm = el.child(".x-window-body", false);
// or el.child(".x-panel-body", false);
//we are listinig to the scroll-event now
this.myFormEl = elForm;
this.safeScroll = {top:0, left:0};
elForm.on('scroll', function() {
console.log("save");
this.safeScroll = this.myFormEl.getScroll();
}, this);
elForm.on('click', function() {
var resWin = this.getResWin();
resWin.scrollBy(0,this.safeScroll.top,false);
console.log("reset");
}, this);
elForm.on('keyup', function() {
var resWin = this.getResWin();
resWin.scrollBy(0, this.safeScroll.top, false);
console.log("reset");
}, this);
}
Come potete vedere, sto ascoltando il rotolo-evento e sicuro e ripristinare la barra di scorrimento. A volte (specialmente se stai scrivendo molto velocemente in una casella di testo) gli eventi arrivano in un ordine diverso e la pagina salterà comunque in alto. A volte lo vedi anche sfarfallare (se ha bisogno di troppo tempo per riportarlo alla posizione originale).
Quindi ... Come ho detto, è una soluzione raccapricciante. Se trovi una soluzione migliore, faccelo sapere.
EDIT
ho anche capito, che il crescono opzione su un textareafield stato uno dei facinorosi.
{
id: this.id + '-details',
xtype: 'textareafield',
// grow: true, now it isn't jumping
name: 'message',
fieldLabel: 'Zusätzliche Informationen',
labelAlign: 'top',
renderder: 'htmlEncode',
disabled: isDisabled,
anchor: '100%'
}
grazie, funziona per me. Basta cambiare il layout in "vbox". – wengeezhang