Używam układu liniowego, aby wyświetlić całkiem lekki ekran początkowy. Ma 1 przycisk, który ma być wyśrodkowany na ekranie zarówno w poziomie, jak i w pionie. Jednak bez względu na to, co próbuję zrobić, przycisk wyrówna do góry środek. Poniżej zamieściłem XML. Czy ktoś może skierować mnie w dobrym kierunku?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageButton android:id="@+id/btnFindMe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:background="@drawable/findme"></ImageButton>
</LinearLayout>
layout_width
na „wrap_content”. Następnielayout_gravity
zrobił to, co miał zrobić!Odpowiedzi:
Jeśli chcesz wyśrodkować element na środku ekranu, nie używaj znaku,
LinearLayout
ponieważ są one przeznaczone do wyświetlania wielu elementów z rzędu.RelativeLayout
Zamiast tego użyj .Więc zamień:
dla odpowiedniej
RelativeLayout
opcji:Twój plik układu będzie wyglądał następująco:
źródło
Wyśrodkuj za pomocą LinearLayout:
źródło
Czy próbowałeś zdefiniować
android:gravity="center_vertical|center_horizontal"
układ i ustawienieandroid:layout_weight="1"
w obrazie?źródło
android:weight="1"
przycisku, aby go wyśrodkować.)Często stosowaną metodą działającą w układzie liniowym jest ustawienie właściwości na przycisku obrazu
Możesz wybrać wyrównanie do lewej, wyśrodkowanie lub wyrównanie do prawej każdego obiektu w układzie liniowym. Zauważ, że powyższa linia jest dokładnie taka sama jak
źródło
Dodaj
W LinearLayout.
źródło
android:gravity="center"
Jeśli używasz
LinearLayout
, możesz dodać środek ciężkości:źródło
łatwe z tym
źródło
Możesz użyć
RelativeLayout
.źródło
Powyższy kod będzie działał.
źródło
kompletna i działająca próbka z mojej maszyny ...
źródło
Zgodnie z dokumentacją Androida dla atrybutów XML Androida: layout_gravity , możemy to zrobić łatwo :)
źródło
Ustaw na true
android:layout_alignParentTop="true"
iandroid:layout_centerHorizontal="true"
w przycisku, tak jak poniżej:źródło
Możesz także wypróbować ten kod:
źródło
po prostu użyj (aby ustawić go na środku układu)
I użyć
zmienić pozycję
źródło
Można również ustawić szerokość LinearLayout do
wrap_content
i używanieandroid:layout_centerInParent
,android:layout_centerVertical="true"
:źródło
To działa dla mnie.
źródło
Próbowałeś tego?
źródło
posługiwać się
źródło
Łatwiej byłoby użyć układów względnych, ale w przypadku układów liniowych zwykle centruję, upewniając się, że szerokość odpowiada elementowi nadrzędnemu:
a następnie po prostu podaj marginesy odpowiednio w prawo i w lewo.
źródło