У меня есть следующий код, как мне сделать так, чтобы 3 кнопки были внизу?
<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
источник
источник
android:weight="1"
вам , вероятно , имел в видуandroid:layout_weight="1"
. Это не твоя проблема, хотя.Ответы:
Вам необходимо обеспечить четыре вещи:
LinearLayout
естьlayout_height="match_parent"
LinearLayout
имеетlayout_weight="1"
иlayout_height="0dp"
TextView
имеетlayout_weight="0"
LinearLayout: android:gravity="center|bottom"
Обратите внимание, что
fill_parent
это не означает «занять все доступное пространство». Однако, если вы используетеlayout_height="0dp"
сlayout_weight="1"
, то представление будет занимать все доступное пространство ( Невозможно получить правильный макет с «fill_parent» ).Вот код, который я быстро написал, который использует два LinearLayouts аналогично вашему коду.
Результат выглядит примерно так:
источник
layout_weight="0"
или что это на самом деле делает?Вы можете использовать
RelativeLayout
и выровнять его с нижнейandroid:layout_alignParentBottom="true"
источник
layout_weight="1"
. При этом ваш LinearLayout будет занимать высоту, оставленную на экране; Теперь вы можете установить гравитацию ваших кнопок вниз.Создайте относительный макет и внутри этого макета создайте кнопку с этой линией
источник
android:layout_centerHorizontal="true"
к центру по горизонтали делает это отличным решением.сначала создайте имя файла,
footer.xml
поместив этот код в него.затем создайте header.xml и поместите в него этот код.
а затем в вашем
main_activity.xml
и положить этот код внутри него: -счастливого кодирования :)
источник
Вы можете сделать это, взяв макет Frame в качестве родительского макета, а затем поместив линейный макет внутри него. Вот пример:
источник
источник
Просто добавьте layout_weight = "1" в ваш linearLayout, который имеет кнопки.
Редактировать: - позвольте мне сделать это просто
следуйте как показано ниже, название тега может быть не правильным, это просто идея
источник
LL1
элемент в качестве разделителя, так что все, что будет дальше, будет внизу? Довольно аккуратный трюк.Добавить
android:windowSoftInputMode="adjustPan"
в манифест - к соответствующей деятельности:источник
Вы можете связать свои кнопки в RelativeLayout, даже если ваш родительский макет является линейным. Убедитесь, что самый внешний родитель имеет атрибут android: layout_height, равный match_parent . И в этом тэге Button добавьте 'android: alignParentBottom = "True"'
источник