Sunday, 2 July 2017

Edgesforextendedlayout Scrollview Can Host


31 Tage von Android: Tag 19ScrollViews Heute würden gehen, um 31 Tage von Android fortzufahren, indem Sie über zwei verschiedene Möglichkeiten, um mehr Informationen anzuzeigen, als auf dem Bildschirm passen: 160 ScrollView s und ListView s.160 Heute werden wir auf ScrollView s konzentrieren Und morgen wird ListView s.160 Aufgrund der Art, wie diese beiden View s Arbeit, wollen Sie nicht zu kombinieren, die beiden von ihnen.160 Einmal Ive ging über beide von ihnen morgen, Ill reden, warum sollten Sie sie separat.160 Sie Können Sie den Beispielcode herunterladen würde gehen heute mit hier beginnen. Mit dem ScrollView können Sie Bildschirme erstellen, die einer Webseite sehr ähnlich sind.160160160 Durch das Hinzufügen einer Bildlaufansicht zu einem Layout können Sie den Benutzer innerhalb der ScrollView vertikal und horizontal scrollen.160 Wenn Sie Ihre App jetzt ausführen, sehen Sie sie dort Ist keine Notwendigkeit für das Scrollen: 160 Allerdings, wenn Sie eine riesige Menge an Text am unteren Rand hinzufügen, könnte das ändern.160 Öffnen Sie Ihre Datei resvaluesstrings. xml und fügen Sie eine neue String.160 Name es bigtext und legte einen sehr großen Text String in there.160 So etwas wie dies: Um Ihre Zeichenfolge entsprechend lang, Id empfehlen, immer ein paar Absätze aus Bacon Ipsum .160 Nun öffnen Sie die reslayoutmain. xml Layoutdatei.160 Sie müssen eine neue TextView unter dem letzten Button hinzufügen Und setzen Sie es auf Ihre bigtext value.160 Wenn youre getan, sollten Sie etwas wie dieses: Nun, wenn Sie Ihre Anwendung ausführen, youll bemerken, dass der Text aus dem Bildschirm geht und Sie nicht haben, um es zu sehen: Heres, wo Sie die verwenden können ScrollView .160 Ihr erster Instinkt kann sein, zurück zu Ihrem Layout zu gehen und das LinearLayout an der Wurzel zu einer ScrollView zu ändern .160 Wenn Sie das tun, werden Sie von diesem unangenehmen Fehler begrüßt: Verursacht durch: java. lang. IllegalStateException: ScrollView kann Host nur ein direktes Kind Dies bedeutet, dass Sie nicht mehr als eine Ansicht als untergeordnetes Element der ScrollView haben können.160 Da Ihr Layout über ein paar TextViews verfügt. Ein EditText. Und ein paar Buttons. Können Sie nicht einfach ersetzen die Wurzel LinearLayout wie this.160 Was können Sie tun, obwohl ist wrap die LinearLayout innerhalb eines ScrollView .160 Dies ermöglicht Ihnen, ein einzelnes Kind unter dem ScrollView haben, aber mehrere Kinder unterhalb haben.160 Wenn youre getan, Ihre XML sollte so aussehen: Jetzt, wenn Sie Ihre Anwendung ausführen, können Sie tippen Sie auf den Bildschirm und ziehen Sie nach oben: Beachten Sie, dass, wenn Sie scrollen youll sehen Sie eine Bildlaufleiste auf der rechten Seite des Bildschirms.160 Youll bemerken, dass Sie nicht nach rechts scrollen Oder links.160 Dies liegt daran, dass die ScrollView nur das vertikale Blättern unterstützt.160 Mit dem HorizontalScrollView-Element können Sie horizontal scrollen.160 Es ist möglich, ein HorizontalScrollView als Kind der VerticalScrollView einzufügen, mit dem Sie in beide Richtungen blättern können, Jedoch sagt Google, dass dies eine schlechte Idee .160 Stattdessen schlagen Sie vor, Sie überschreiben ScrollView und erstellen Sie Ihre eigene Steuerung fähig sowohl vertikale als auch horizontale scrolling.160 Dies ist durchaus möglich und wenn Sie das Internet suchen, youll finden Sie einige Beispiele für Menschen tun Dies und sogar den Quellcode für ihre Implementierungen.160 Wie ich gerne tun, erinnern Id daran erinnern, dass nur, weil Sie es tun können, bedeutet nicht, dass Sie sollten. Die Erfahrung, wenn Sie in mehrere Richtungen auf einem kleinen Bildschirm scrollen müssen Gerät ist nicht ein sehr gutes (ja das WebView und Browser geben Ihnen diese Fähigkeit und Id argumentieren, ob ich das manchmal mag) .160 Es gibt eine Reihe von verschiedenen Attributen, die Sie in einem ScrollView verwenden können, einschließlich diejenigen, mit denen Sie ändern, wie die Bildlaufleisten aussehen , Wie lange sie sichtbar sind, wenn sie sichtbar sind, etc.160 Darüber hinaus können Sie das Scrollen von ScrollView programmgesteuert kontrollieren, wenn Sie möchten.160 Wenn Sie z. B. eine Schaltfläche hinzufügen möchten, die den ScrollView auslösen würde, Oben, ist dies möglich, indem Sie Folgendes tun: Hier erhalten Sie einen Verweis auf Ihre ScrollView und sagen es, um zurück zu der oberen linken Ecke.160 Eine weitere wichtige Sache über die ScrollView ist, dass es nicht das Root-Element in Ihrem Layout sein .160 Wenn Sie eine Textüberschrift am oberen Rand des Bildschirms haben möchten, die Ihre Bildlaufansicht nicht umfasst, können Sie einfach den ScrollView als untergeordnetes Element des Root-LinearLayout einfügen .160 Heres Ihr Layout-XML, in dem das ScrollView nur die Datei einpackt Bigtext TextView: Sie sollten bereit sein, ScrollView s in Ihren eigenen Anwendungen jetzt.160 Tomorrow gut über die andere Methode der Anzeige einer Vielzahl von Informationen in einer einzigen Seite, ListView s.160 Share PostI müssen Einschränkungen in uiscrollview in viewcontroller gesetzt Ich habe eine uiview (contentView) in scrollview, die von der gleichen Höhe wie scrollview. These sind die Dinge, die ich habe curently gesetzt, setzen 4 Einschränkungen für scrollview (oben, unten, links, rechts) mit Einschränkungen platziert To margin unchecked, was 0 für alle Kanten ist. Set 4 Begrenzungen für uiview (contentView) in scrollview (oben, unten, links, rechts) mit Randbedingungen für Rand ungeprüft, die 0 für alle Kanten ist. Set gleich breit und gleich Höhe für scrollview und UIView (contentView) - Ausgabe wird angezeigt, wie diese uiview (contentView) platziert niedriger über 64 px (ca.) platziert. Diese Ansicht sollte nicht wie folgt aussehen. Kann jemand mir helfen, dies zu lösen. Hier ist die Projekt-Demo, die ich gearbeitet habe und kann hier heruntergeladen werden Mar 14 16 at 20:47 Ich arbeitete an Ihrem Projekt und die scrollview doesn39t Start an der Spitze der VC, beginnt es am Ende der navBar. Nur die kleinere Ansicht sollte dort beginnen. Auch Sie don39t haben sogar eine Klasse für das VC, müssen Sie es hinzufügen und setzen aus der Ansicht lud die scrollview Höhe, die Sie wollen. Um ehrlich zu sein, empfehle ich Ihnen, ein neues Tutorial von Grund auf neu zu starten, da dort ein paar Dinge fehlen in Ihrem Projekt und wird schneller sein. Ich brauche Einschränkungen in uiscrollview in viewcontroller mit Navigationsleiste und tabbar. Ich habe eine uiview (contentView) in scrollview, die von der gleichen Höhe wie scrollview. These sind die Dinge, die gesetzt haben Ich habe curently gesetzt, setzen 4 Einschränkungen für scrollview (oben, unten, links, rechts) mit Randbedingungen für Rand unchecked, die 0 für alle Kanten ist. Set 4 Begrenzungen für uiview (contentView) in scrollview (oben, unten, links, rechts) mit Randbedingungen für Rand ungeprüft, die 0 für alle Kanten ist. Set gleich breit und gleich Höhe für scrollview und UIView (contentView) - Ausgabe wird angezeigt, wie diese uiview (contentView) platziert niedriger über 64 px (ca.) platziert. Diese Ansicht sollte nicht wie folgt aussehen. Kann jemand mir helfen, dies zu lösen. Hier ist die Projekt-Demo, die ich gearbeitet habe und kann hier heruntergeladen werden Mar 14 16 at 20:47 Ich arbeitete an Ihrem Projekt und die scrollview doesn39t Start an der Spitze der VC, beginnt es am Ende der navBar. Nur die kleinere Ansicht sollte dort beginnen. Auch Sie don39t haben sogar eine Klasse für das VC, müssen Sie es hinzufügen und setzen aus der Ansicht lud die scrollview Höhe, die Sie wollen. Um ehrlich zu sein, empfehle ich Ihnen, ein neues Tutorial von Grund auf neu zu starten, da dort ein paar Dinge fehlen in Ihrem Projekt und wird schneller sein. Achten Sie darauf) ndash Victor Rius Mar 22 16 um 13: 26 In iOS7 starten die View-Controller standardmäßig das Vollbild-Layout. Gleichzeitig haben Sie mehr Kontrolle darüber, wie es seine Ansichten ausgibt, und das ist mit diesen Eigenschaften getan: Grundsätzlich legen Sie mit dieser Eigenschaft fest, welche Seiten Ihrer Ansicht erweitert werden können, um den gesamten Bildschirm zu decken. Stellen Sie sich vor, Sie schieben einen UIViewController in einen UINavigationController. Wenn die Ansicht des View-Controllers angelegt ist, wird es gestartet, wo die Navigationsleiste endet, aber diese Eigenschaft stellt fest, welche Seiten der Ansicht (oben, links, unten, rechts) erweitert werden können, um den gesamten Bildschirm zu füllen. Lassen Sie es mit einem Beispiel sehen: Hier legen Sie den Wert von edgesForExtendedLayout nicht fest. Daher wird der Standardwert genommen (UIRectEdgeAll), so dass die Ansicht ihr Layout erweitert, um den gesamten Bildschirm zu füllen. Dies ist das Ergebnis: Wie Sie sehen können, erstreckt sich der rote Hintergrund hinter der Navigationsleiste und der Statusleiste. Jetzt werden Sie diesen Wert auf UIRectEdgeNone setzen. So dass Sie sagen, die Ansicht-Controller nicht erweitern Sie die Ansicht auf den Bildschirm zu decken: Diese Eigenschaft wird verwendet, wenn Ihre Ansicht ein UIScrollView oder ähnliches ist, wie ein UITableView. Sie möchten, dass Ihre Tabelle anfängt, wo die Navigationsleiste endet, weil Sie den gesamten Inhalt nicht sehen, wenn nicht, aber gleichzeitig möchten Sie, dass Ihr Tisch den gesamten Bildschirm beim Scrollen abdeckt. In diesem Fall wird das Setzen von KantenForExtendedLayout auf None nicht funktionieren, da Ihre Tabelle beginnt zu scrollen, wo die Navigationsleiste endet und es wird nicht dahinter gehen. Hier ist, wo diese Eigenschaft ist praktisch, wenn Sie lassen Sie die View-Controller automatisch passen Sie die Einfügungen (Einstellung dieser Eigenschaft auf YES, auch der Standardwert) wird es Insert an der Spitze der Tabelle hinzufügen, so dass die Tabelle beginnt, wo die Navigation Bar-Enden, aber die Spirale wird den gesamten Bildschirm zu decken. Das ist, wenn auf NEIN eingestellt ist: und JA (standardmäßig): In beiden Fällen blättert die Tabelle hinter der Navigationsleiste, aber im zweiten Fall (JA) wird sie unterhalb der Navigationsleiste gestartet. Dieser Wert ist nur eine Ergänzung zu den vorherigen. Wenn die Statusleiste undurchsichtig ist, werden die Ansichten nicht um die Statusleiste erweitert, es sei denn, dieser Parameter ist JA. Wenn Sie Ihre Ansicht erweitern, um die Navigationsleiste (edgesForExtendedLayout zu UIRectEdgeAll) zu decken, und der Parameter NO (Standard) ist, wird sie die Statusleiste nicht decken, wenn sie undurchsichtig ist. Wenn etwas nicht klar ist, schreiben Sie einen Kommentar und Kranke Antwort darauf. Wie iOS weiß, was UIScrollView iOS verwenden, greift die erste Unteransicht in Ihrer viewcontroller-Ansicht, so dass die eine bei Index 0, und wenn seine eine Unterklasse von UIScrollView dann die erklärten Eigenschaften an sie anwendet. Das bedeutet natürlich, dass UITableViewController standardmäßig arbeitet (da UITableView die erste Ansicht ist).

No comments:

Post a Comment