Mam następujący kod, jak mam to zrobić, żeby 3 przyciski znalazły się na dole?
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="60dp"
android:gravity="center"
android:text="@string/observer"
android:textAppearance="?android:attr/textAppearanceLarge"
tools:context=".asdf"
android:weight="1" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
style="?android:attr/buttonStyleSmall"
android:layout_width="145dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center"
android:text="1" />
<Button
android:id="@+id/button2"
style="?android:attr/buttonStyleSmall"
android:layout_width="145dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center"
android:text="2" />
<Button
android:id="@+id/button3"
style="?android:attr/buttonStyleSmall"
android:layout_width="145dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center"
android:text="3" />
</LinearLayout>
android
xml
android-layout
button
android-linearlayout
thedeepfield
źródło
źródło
android:weight="1"
was zapewne na myśliandroid:layout_weight="1"
. To nie jest jednak twój problem.Odpowiedzi:
Musisz zapewnić cztery rzeczy:
LinearLayout
malayout_height="match_parent"
LinearLayout
malayout_weight="1"
ilayout_height="0dp"
TextView
malayout_weight="0"
LinearLayout: android:gravity="center|bottom"
Zauważ, że
fill_parent
nie oznacza to „zajmij całą dostępną przestrzeń”. Jeśli jednak użyjeszlayout_height="0dp"
zlayout_weight="1"
, widok zajmie całe dostępne miejsce ( nie można uzyskać prawidłowego układu za pomocą „fill_parent” ).Oto kod, który szybko napisałem, który używa dwóch LinearLayouts w podobny sposób jak twój kod.
Wynik wygląda podobnie do tego:
źródło
layout_weight="0"
lub co faktycznie robi?Możesz użyć a
RelativeLayout
i wyrównać go do dołu za pomocąandroid:layout_alignParentBottom="true"
źródło
layout_weight="1"
. Dzięki temu Twój LinearLayout zajmie wysokość po lewej stronie ekranu; teraz możesz ustawić grawitację swoich Przycisków na dole.Utwórz układ względny i wewnątrz tego układu utwórz przycisk z tą linią
źródło
android:layout_centerHorizontal="true"
do środka również w poziomie sprawia, że jest to świetne rozwiązanie.najpierw utwórz plik, nazwij go,
footer.xml
umieszczając w nim ten kod.następnie utwórz plik header.xml i umieść w nim ten kod .:
a następnie w swoim
main_activity.xml
i umieść w nim ten kod: -miłego kodowania :)
źródło
Możesz to zrobić, przyjmując układ ramki jako układ nadrzędny, a następnie umieszczając w nim układ liniowy. Oto przykład:
źródło
źródło
Po prostu dodaj layout_weight = "1" do swojego linearLayout, który ma przyciski.
Edycja: - uproszczę
wykonaj coś takiego jak poniżej, nazwa tagów może nie być poprawna, to tylko Pomysł
źródło
LL1
elementu jako elementu dystansowego, więc wszystko dalej będzie na dole? Całkiem zgrabna sztuczka.Dodaj
android:windowSoftInputMode="adjustPan"
do manifestu - do odpowiedniego działania:źródło
Możesz zgrupować swoje Button (y) w RelativeLayout, nawet jeśli Twój układ nadrzędny jest liniowy. Upewnij się, że najbardziej zewnętrzny element nadrzędny ma atrybut android: layout_height ustawiony na match_parent . W tym tagu przycisku dodaj „android: alignParentBottom =" True "”
źródło