Ustawienie samej grawitacji RelativeLayout wpłynie na wszystkie obiekty w nim umieszczone. W tym przypadku to tylko przycisk. Możesz oczywiście użyć tutaj dowolnego ustawienia grawitacji (np. Center_hizontal, top, right, itd.).
Dzięki. Jednak gdybym miał wiele przycisków i chciałbym tylko jeden wyśrodkowany, jak bym to zrobił? Pierwszy kod wyśrodkowuje wszystko w układzie relatywnym nadrzędnego. Poza tym, jak mogę wyśrodkować przycisk na górze tego rzędu?
Arcadia,
Po prostu użyj drugiego przykładu i dodaj tylko centerInParent do przycisku, który chcesz wyśrodkować. Możesz również użyć centerHorizontal i layout_alignParentTop, aby wyrównać go do góry i wyśrodkować w poziomie. Co dokładnie próbujesz osiągnąć, mogę podać lepszy przykład.
Kevin Coppock
Ledwo zaczynam studia nad rozwojem Androida i próbuję w pełni zrozumieć, jak manipulować rzeczami, aby robić to, co chcę. Zasadniczo chcę trzymać się z daleka od wyrównywania rzeczy za pomocą pikseli, ponieważ obraz może wyglądać zupełnie inaczej na innym typie ekranu / rozdzielczości. Jednak gdy używasz polecenia grawitacji, wszystko podąża za nim. Próbowałem wyłączyć grawitację dla przycisku za pomocą ignoreGravity i to nie zadziałało. To jest bardzo trudne.
Arcadia,
Tak, zdecydowanie może być. Istnieje wiele sposobów na wykonanie określonego układu. Najlepszym sposobem jest naszkicowanie tego w głowie, jak chcesz, i od tego momentu. Ten krótki samouczek może też pomóc: developer.android.com/resources/tutorials/views/ ...
Kevin Coppock
Tak, właściwie robiłem ten samouczek. Przechodzę przez każdy z samouczków i uczę się, jak w pełni nimi manipulować, w przeciwnym razie nie będę miał pojęcia, jak każdy jest inny.
Arcadia,
25
Streszczony
Dodanie:
android:layout_centerInParent="true"
działa tylko na RelativeLayout, jeśli jeden z następujących atrybutów jest również ustawiony dla widoku:
Aby wyśrodkować i wyrównać w jednym z kierunków, użyj android: layout_centerHorizontal = "true" lub android: layout_centerVertical = "true" w układzie podrzędnym
Usunięcie wyrównania, takiego jak android: layout_alignParentStart = "true" i dodanie centerInParent zadziałało. Jeśli „align” pozostaje w, centerInParent nie działa
Odpowiedzi:
Próbować
Dokładnie tak, to działa dla mnie:
źródło
Możesz użyć CENTER_IN_PARENT do względnego układu.
Dodaj
android:layout_centerInParent="true"
do elementu, który chcesz wyśrodkować w RelativeLayoutźródło
Arcadia, po prostu wypróbuj poniższy kod. Istnieje kilka sposobów uzyskania wyniku, którego szukasz, jest to jeden z łatwiejszych.
Ustawienie samej grawitacji RelativeLayout wpłynie na wszystkie obiekty w nim umieszczone. W tym przypadku to tylko przycisk. Możesz oczywiście użyć tutaj dowolnego ustawienia grawitacji (np. Center_hizontal, top, right, itd.).
Możesz również użyć tego kodu poniżej:
źródło
Streszczony
Dodanie:
działa tylko na RelativeLayout, jeśli jeden z następujących atrybutów jest również ustawiony dla widoku:
który wyrównuje widok podrzędny do widoku nadrzędnego. „Środek” jest oparty na osi wybranego wyrównania:
lewo / prawo -> pionowo
góra / dół -> poziomo
Ustawianie wagi dzieci / treści w widoku:
w każdym przypadku wyśrodkowuje dziecko w widoku macierzystym, jeśli nie ma zestawu wyrównania. Opcjonalnie możesz wybrać:
Następnie jest:
który skupia sam widok wewnątrz jego rodzica
Wreszcie możesz dodać następujący atrybut do widoku rodziców:
źródło
Użyj atrybutu
android:centerInParent="true"
wewnątrz widoku, jeśli chcesz wyśrodkować widok w układzie względnym.źródło
To proste, nie dopasowuj go do niczego
źródło
Aby wyśrodkować i wyrównać w jednym z kierunków, użyj android: layout_centerHorizontal = "true" lub android: layout_centerVertical = "true" w układzie podrzędnym
źródło
Usunięcie wyrównania, takiego jak android: layout_alignParentStart = "true" i dodanie centerInParent zadziałało. Jeśli „align” pozostaje w, centerInParent nie działa
źródło
To naprawdę łatwe. Wypróbuj poniższy kod,
źródło
musisz wyrównać go do lewej lub prawej strony widoku nadrzędnego
nie używaj żadnego z nich podczas korzystania z
android:centerInParent="true"
kodów: -android:layout_alignParentLeft="true"
android:layout_alignParentLeft="true"
android:layout_alignRight=""
itp.
źródło