2016-08-08 32 views

Antwort

2

Sichtbarkeit: Kollaps nimmt keinen Platz. Hier

ist ein Beispiel, um zu bestätigen es:

page.xml

<Page loaded="loaded"> 
    <StackLayout> 
     <Button text="{{ showDetails ? 'Hide' : 'Show' }}" tap="toggle" /> 
     <GridLayout width="200" height="200" backgroundColor="red" visibility="{{ showDetails ? 'visible' : 'collapsed' }}" > 
      <Label text="{{ showDetails }}" textWrap="true" /> 
     </GridLayout> 
     <GridLayout width="200" height="200" backgroundColor="gray" > 
      <Label text="Always visible element" textWrap="true" /> 
     </GridLayout> 
    </StackLayout> 
</Page> 

page.ts

var observable = require("data/observable"); 
var pageData = new observable.Observable(); 

exports.loaded = function(args) { 
    pageData.set("showDetails", true); 
    args.object.bindingContext = pageData; 
} 

exports.toggle = function() { 
    pageData.set("showDetails", !pageData.get("showDetails")); 
} 

Mit diesem Beispiel, wenn Sie ändern Die Sichtbarkeit des mittleren Elements (rote Gitterbox) wird komplett zusammenfallen, ohne dass Platz belegt ist und das dritte Element (graue Gitterbox) wird nach oben bewegt.

+2

Danke. Ich habe versucht, einen ListView-Eintrag zu verbergen. Wenn das äußerste Element ein StackLayout ist und wenn ich die Sichtbarkeit auf Zusammenfalten einstelle, blendet es alle verschachtelten Elemente aus, aber es belegt immer noch Platz. Aber als ich eine zusätzliche Ebene von StackLayout hinzugefügt und die Sichtbarkeit auf das innere Element angewendet habe, funktioniert es wie erwartet. – dashman

+0

@dashman Ihr Kommentar gespeichert mein Tag danke – Steve