2012-11-08 5 views
5

Ich habe ein Border-Layout mit zwei Regionen; Zentrum und Westen. Die westliche Region wird mit dem Splitterparameter hinzugefügt und ist zusammenklappbar. Jetzt habe ich eine Toolbar, von der ich die West Region verstecken/zeigen möchte. Ich habe das gelöst, indem ich die toggleTargetCmp() Methode des Teilers anrufe. Nun, ich weiß, das ist eine private Methode und sollte nicht verwendet werden, aber ich habe keine andere Möglichkeit gefunden, dies zu archivieren. So weit, ist es gut. All das funktioniert.Eine Komponente innerhalb einer Border-Layout-Region programmatisch ausblenden

Aber jetzt möchte ich den Splitter & Platzhalter (ich hole den Platzhalter Ownet mit der getCollapseTarget() Methode des Splitters), wenn die Schaltfläche in der Symbolleiste geklickt wird. Ich versuchte es mit setVisible(false), die für den Teiler funktioniert, aber es funktionierte nicht gut für den Platzhalter ... nach einem tieferen Blick auf die Platzhalterinstanz kann ich sagen, dass es auf hidden: true gesetzt ist, aber es verwendet die hideMode: 'offsets' standardmäßig plus hiddenAnchestor: false die ist in der API nicht dokumentiert.

auf dem API-Doku Basierend für hideMode ich es 'display' vor dem Aufruf von setVisible(false) ohne Glück zu setzen versuchte, bleibt der Platzhalter noch sichtbar.

Also wie kann ich den Plocholder auch verstecken. Oder gibt es noch eine bessere Möglichkeit, dies zu archivieren?

Antwort

1

Haben Sie versucht, Verstecken Methode? Es funktioniert genau so, wie Sie es beschreiben - versteckt Region und Splitter. In meinem Projekt Ich mache es wie folgt aus:

panel.hide(); 

wo Platte eins borderPanel Elemente ist.

+0

Basierend auf dem [API-Verbergen()] (http://docs.sencha.com/ext-js/4-1/#!/api/Ext.Component-method-hide) gilt nur für Floating-Elemente . Aber ich werde es versuchen. – sra

+0

Nun, manchmal ist es gut, die Zeilen neu zu lesen :) Nur das animationTarget ist eingeschränkt. Danke, dass du mich darauf hingewiesen hast! +1 – sra

+0

Sie sind willkommen – mik