ConstraintLayout: wie ein Blick auf die Hälfte der Bildschirmbreite und-zentriert?
TD;DR
Die Ansicht muss die Breite genau die Hälfte des Bildschirms, und zentriert werden. Mit ConstraintLayout.
Beachten Sie, dass die Ansicht nicht über irgendeine innere Breite.
<View android:background="#ff0000" ... />
Ursprüngliche Frage
Ich möchte erreichen, ein layout wo ein Blick auf die Größe ist die Hälfte des Bildschirms Größe und horizontal zentriert.
Etwas wie dieses: |----|
Ich finde keine Möglichkeit mit ConstraintLayout. Die beste, die ich fand, ist die Verwendung app:layout_constraintHorizontal_weight="1"
auf 2 fake-views positioniert, an der voll nach Links und voll rechts-bzw. app:layout_constraintHorizontal_weight="1.5"
auf meine anzeigen.
Einen besseren Weg ?
Naja wie ich bereits erwähnt eine Lösung mit xml und 3 Ansichten in der Frage, nehme ich an, Sie wäre intelligent genug, um zu folgern, dass "der bessere Weg" bedeutet "weniger code" als 3 Zeilen xml. Ich soll falsch und verbessern meine nächste Frage. ty für versuchen, Sie zu beantworten.
InformationsquelleAutor Softlion | 2017-08-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit der beta-Version, die Sie verwenden können prozentuale breiten haben. Wenn Sie nicht verwenden können, die beta-Version, die Sie verwenden können, zwei vertikale Hilfslinien: ein zu 25% der Bildschirm Breite und eine bei 75% der Breite. Die Ansicht mit einer Breite von
0dp
würde eingeschränkt werden, die zwischen diesen beiden Leitlinien. Dieses setup wird Ihnen eine Ansicht, die 1/2 des Bildschirms Breite und auch zentriert.Den folgenden XML-Code zeigt die beiden Möglichkeiten, einer mit der
ConstraintLayout
beta-Version und das zweite durch die Verwendung von Funktionen zur Verfügung, die in der aktuellen Produktions-release.XML-Layout
Erstens, es ist nicht einfach, also nicht Dinge sagen wie "Es sollte nicht allzu schwer sein," es sei denn, Sie sind bereit, es selbst implementieren, gehen Sie für Google arbeiten und tun es. Zweitens, wenn Sie AutoLayout Erfahrung, sollten Sie wissen, wie schwierig es war (und ist weiterhin) für die Benutzer; selbst erfahrene Anwender nahm ein Stück Zeit, es zu verstehen (wenn überhaupt) und viel wichtiger, in einer täglichen Praxis, AutoLayout kann sehr schwierig zu Debuggen, vor allem, wenn die layouts sind kompliziert. CL macht einige Dinge besser als AL, und Umgekehrt.
Die beta-Version wird nie kommen ?
Ich würde glücklich sein, um dies zu implementieren, da es einfach ist. Cl tut nichts besser als AL-lol, oder vielleicht auch nur die Geschwindigkeit zu berechnen, das layout. Es ist eine einfache Liste von Gleichungen, die verwandelt sich in eine matrix, die ohne weiteres behoben werden kann.
InformationsquelleAutor Cheticamp
Als "ConstraintLayout1.1.0-beta1", die Sie verwenden können Prozent zu definieren, breiten & Höhen.
Diese definieren die mit 40% der Breite des Bildschirms. Eine Kombination dieser und Richtlinien in Prozent ermöglichen Sie die Erstellung einer Prozent-basiertes layout, die Sie wollen.
Überprüfen Sie bitte meine aktualisierte Antwort
Ok, aber was ist, wenn ich nicht verwenden können, eine beta-Komponente ?
InformationsquelleAutor shahid17june
versuchen, diese vertikal unterteilen
InformationsquelleAutor Karthik Kompelli
Ergebnis
Was Sie tun müssen, ist:
Fügen Sie einfach diese in Ihre XML
- Und dies in Ihrer java.
Zuerst importieren Sie diese.
Dann fügen Sie diese Zeilen in die onCreate-Funktion der java-Datei.
Können Sie auch die Höhe dieser Methode. Und ja, diese Ansicht verwendet die Hälfte der Bildschirmbreite unabhängig von der Bildschirmgröße ist.
Wie Sie nicht wollen, es zu tun, die über java. Fügen Sie diese zu Ihrem XML.
Indem Sie diese, verschieben Sie diese Richtlinie bis Ende des Bildschirms, und notieren Sie diesen Wert
app:layout_constraintGuide_begin="411dp"
. Nun, was auch immer das Wert ist, das ist dein Bildschirm in der Breite.Hinzufügen
marginStart
undmarginEnd
Ihrer Sicht als 411/4 dp. (berechnen Sie diesen Wert, XML ist nicht zu tun).Dadurch wird Ihr Blick in der Mitte mit der halben Breite als Elternteil.
Denken Sie daran, nicht jeder Bildschirm ist mit 411dp. Dies funktioniert nicht für alle Handy-Display-Größe gibt.
Versuchen Sie Ihre Lösung mit
<View android:background="#ff0000" />
: kommt diese Sicht verwendet die Hälfte der Bildschirm-Breite ? Nein 🙂Ich will nicht von java, wie es wird nicht funktionieren, wenn das ändern der Geräteausrichtung.
Ich habe herausgefunden, das durch die Kombination vieler Antworten und Lösungen, und mein eigenes Gehirn macht und 20 Minuten meiner Zeit für die Suche nach diesem Zeug. Bitte abstimmen, wenn Werke, die er tut, indem Sie die Art und Weise. Auch der JAVA-code, den ich mitgeteilt habe, ist auch genau so, wie Sie wollen, dass es beim ändern der Ausrichtung.
Auch die Frage fragt nach einer Lösung, die einfacher ist, als den man ausgesetzt ist. Dir ist komplizierter.
InformationsquelleAutor Lalit Singh Fauzdar
Mit ConstraintLayout, können Sie center ein Blick in die Fenster wie dieses:
Aktualisieren Sie Ihre gradle auf die Letzte version der ConstraintLayout:
InformationsquelleAutor live-love