Z podglądem 1 Studio Android 2.2 Google wydała nowy układ w swojej bibliotece wsparcia: ConstraintLayout
. Dzięki ConstraintLayout łatwiej jest użyć narzędzia do projektowania w Android Studio, ale nie znalazłem sposobu na użycie względnych rozmiarów (procentów lub „wag” jak w LinearLayout). Czy istnieje sposób zdefiniowania ograniczeń opartych na procentach? Np. Spraw, aby widok zajmował 40% ekranu, utworzyć 20% marginesu między widokami, ustawić szerokość widoku na 50% szerokości innego widoku?
android
android-support-library
android-constraintlayout
Jurij Fiodorow
źródło
źródło
version 1.1
ConstraintLayout. Zobacz „Wymiar procentowy” na developer.android.com/reference/android/support/constraint/… lub niektóre z nowszych odpowiedzi.Odpowiedzi:
Obecnie możesz to zrobić na kilka sposobów.
Jednym z nich jest utworzenie prowadnic (kliknij prawym przyciskiem myszy obszar projektowania, a następnie kliknij dodaj prowadnicę pionową / poziomą). Następnie możesz kliknąć „nagłówek” prowadnicy, aby zmienić położenie na procentowe. Wreszcie możesz ograniczyć widoki do wytycznych.
Innym sposobem jest pozycjonowanie widoku przy użyciu odchylenia (procent), a następnie zakotwiczenie innych widoków w tym widoku.
To powiedziawszy, zastanawialiśmy się, jak zaoferować wymiary oparte na procentach. Nie mogę nic obiecać, ale chcielibyśmy to dodać.
źródło
app:layout_constraintGuide_percentage
Przydatne może być szybkie zapoznanie się z tym punktem.
Umieszczenie widoków
Użyj wytyczną przy
app:layout_constraintGuide_percent
tak:Następnie możesz użyć tej wytycznej jako punktów kontrolnych dla innych widoków.
lub
Użyj stronniczości za pomocą
app:layout_constraintHorizontal_bias
i / lub,app:layout_constraintVertical_bias
aby zmodyfikować lokalizację widoku, gdy pozwala na to dostępna przestrzeńRozmiar widoków
Inną wartością procentową jest wysokość i / lub szerokość elementów, za pomocą
app:layout_constraintHeight_percent
i / lubapp:layout_constraintWidth_percent
:źródło
0dp
jest używany w ConstraintLayout do wskazania dynamicznego rozmiaru. Zobacz developer.android.com/reference/android/support/constraint/…1dp
nie0dp
... o tym mówię0dp
jest już zarezerwowany, więc1dp
wydaje się rozsądny.Od „ConstraintLayout1.1.0-beta1” można użyć wartości procentowej do zdefiniowania szerokości i wysokości.
Spowoduje to określenie szerokości wynoszącej 40% szerokości ekranu. Kombinacja tego i wytycznych w procentach pozwala utworzyć dowolny układ oparty na procentach.
źródło
version 1.1
ConstraintLayout. Dodatkowe_default="percent"
nie jest już potrzebne w stabilnej wersji! Zobacz „Wymiar procentowy” na developer.android.com/reference/android/support/constraint/…sp
jednostkach, w jaki sposób rozmiar tekstu może być automatycznie proporcjonalny do rozmiaru widoku (który sam w sobie jest definiowany proporcjonalnie do całkowitego rozmiaru układu, tj. w „procentach”) ?Dzięki nowej wersji ConstraintLayout v1.1 możesz teraz wykonywać następujące czynności:
Spowoduje to ograniczenie przycisku do 20% wysokości i 65% szerokości widoku rodzica.
źródło
sp
jednostkach, w jaki sposób rozmiar tekstu może być automatycznie proporcjonalny do rozmiaru widoku (który sam w sobie jest definiowany proporcjonalnie do całkowitego rozmiaru układu, tj. W „procentach”) ?Jak korzystać z Wytycznych
Przyjęta odpowiedź jest nieco niejasna, jak korzystać z wytycznych i czym jest „nagłówek”.
Kroki
Najpierw dodaj wytyczną.
Wybierz linię prowadzącą lub przesuń ją trochę, aby uwidocznić ograniczenia.
Następnie kliknij okrągły okrąg („nagłówek”), aż stanie się procentem. Następnie możesz przeciągnąć ten procent do 50% lub cokolwiek chcesz.
Następnie możesz ograniczyć widok do Wytycznych, aby uczynić go pewnym procentem rodzica (używając
match_constraint
w widoku).źródło
Wytyczne są nieocenione - a aplikacja: layout_constraintGuide_percent jest świetnym przyjacielem ... Jednak czasami chcemy procentów bez wytycznych. Teraz można używać obciążników :
Oto bardziej kompletny przykład wykorzystujący wytyczne z dodatkowymi wagami :
źródło
W przypadku ConstraintLayout v1.1.2 wymiar należy ustawić na,
0dp
a następnie ustawić atrybutylayout_constraintWidth_percent
lublayout_constraintHeight_percent
na wartość z zakresu od 0 do 1, na przykład:(Nie musisz ustawiać
app:layout_constraintWidth_default="percent"
aniapp:layout_constraintHeight_default="percent"
używać ConstraintLayout 1.1.2 i następujących wersji)źródło
Układ ograniczeń 1.0 sprawiający, że widok zajmuje procent wymaganego ekranu, tworząc dwie wytyczne. W Constraint Layout 1.1 został uproszczony, umożliwiając łatwe ograniczenie dowolnego widoku do procentowej szerokości lub wysokości.
Czy to nie fantastyczne? Wszystkie widoki obsługują atrybuty layout_constraintWidth_percent i layout_constraintHeight_percent. Spowoduje to, że ograniczenie zostanie ustalone na procent dostępnego miejsca. Tak więc rozwinięcie przycisku lub TextView do wypełnienia procenta ekranu można wykonać za pomocą kilku wierszy XML.
Na przykład, jeśli chcesz ustawić szerokość przycisku na 70% ekranu, możesz to zrobić w następujący sposób:
Należy pamiętać, że należy podać wymiar, który należy zastosować jako wartość procentową do 0dp, ponieważ podaliśmy android: layout_width do 0dp powyżej.
Podobnie, jeśli chcesz ustawić wysokość przycisku na 20% ekranu, możesz to zrobić w następujący sposób:
Widzieć! tym razem podaliśmy android: layout_height do 0dp, ponieważ chcemy, aby przycisk używał wysokości jako wartości procentowej.
źródło
Wypróbuj ten kod. Możesz zmienić wartości procentowe wysokości i szerokości za pomocą app: layout_constraintHeight_percent i app: layout_constraintWidth_percent.
Stopień:
źródło
możesz użyć
app:layout_constraintVertical_weight
tego samego jaklayout_weight
wlinearlayout
UWAGA:
app:layout_constraintVertical_weight
(app:layout_constraintHorizontal_weight
) będzie działać zandroid:layout_width="0dp"
(android:layout_height="0dp"
źródło
Dla kogoś, kto może się przydać, możesz użyć
layout_constraintDimensionRatio
dowolnego widoku podrzędnego wewnątrz a,ConstraintLayout
a my możemy zdefiniować stosunek wysokości lub szerokości drugiego wymiaru (co najmniej jeden musi mieć wartość 0dp albo szerokość albo wysokość) przykładw tym przypadku proporcje to 16: 9
app:layout_constraintDimensionRatio="16:9"
, więcej informacji znajdziesz TUTAJźródło
Wiem, że nie było to bezpośrednio to, o co pierwotnie prosił OP, ale bardzo mi pomogło w tej sytuacji, gdy miałem podobne pytanie. Dodanie tego dla osób, które chcą zmienić rozmiar okna układu (z którego regularnie korzystam), za pomocą kodu . Dodaj to do swojego onCreate w pytaniu. (Zmienia to na 80%)
źródło
Po prostu po prostu zamień w etykiecie z wytycznymi
z
gdzie 0,7 oznacza 70%.
Również jeśli teraz spróbujesz przeciągnąć prowadnice, przeciągnięta wartość pojawi się teraz w% wieku.
źródło
Korzystając z prowadnic, możesz zmienić położenie na procentowe
Możesz także użyć w ten sposób
źródło