这是我正在处理的 UI:
我试图让底部的按钮锚定到屏幕的底部,但为了做到这一点,我似乎需要一个硬编码的高度
<LinearLayout>
<GridLayout></GridLayout>
<GridLayout></GridLayout>
</LinearLayout>
我们在图像中看到的是305dip
. 如果我将其增加到例如335dip
它与底部正确对齐,但我知道这是不对的。但是,如果我将LinearLayout
' 高度设置为match_parent
,例如
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
它按下屏幕底部红色框中的按钮。
我需要一种方法让键盘完全填充所需的空间,并始终将正确的按钮固定在屏幕底部。我怎样才能做到这一点?
这是我的布局定义:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
tools:context=".FullscreenActivity"
android:orientation="vertical"
android:paddingTop="0dip"
android:paddingBottom="0dip">
<TextView
android:id="@+id/keypadOutput"
android:layout_width="match_parent"
android:layout_height="70dip"
android:gravity="center_vertical"
android:keepScreenOn="true"
android:text="@string/dummy_content"
android:textColor="#000000"
android:textSize="25sp"
android:textStyle="bold"
android:background="@drawable/LCD"
android:paddingLeft="15dip"
android:layout_margin="5dip" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="305dip"
android:orientation="horizontal">
<GridLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:columnCount="3"
android:orientation="horizontal">
<!-- 12 buttons -->
</GridLayout>
<GridLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:columnCount="1"
android:orientation="horizontal">
<!-- 3 buttons -->
</GridLayout>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:gravity="bottom|center_horizontal"
android:orientation="horizontal">
<!-- 3 image buttons -->
</LinearLayout>
</LinearLayout>
正确答案
根据下面@Ascorbin的回答,这是解决方案:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center_horizontal">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_horizontal"
android:layout_alignParentBottom="true">
<ImageButton
android:id="@+id/button_keypad"
android:layout_width="45dip"
android:layout_height="45dip"
android:background="@drawable/navigation_button"
android:src="@drawable/keypad_light" />
<ImageButton
android:id="@+id/button_unset"
android:layout_width="45dip"
android:layout_height="45dip"
android:background="@drawable/navigation_button"
android:src="@drawable/unset_light" />
<ImageButton
android:id="@+id/button_logs"
android:layout_width="45dip"
android:layout_height="45dip"
android:background="@drawable/navigation_button"
android:src="@drawable/logs_light" />
</LinearLayout>
</RelativeLayout>