android实现底部布局往往使用RelativeLayout的布局方式,并且设置android:layout_alignParentBottom=”true”,这样很容易实现底部布局。然而对于比较复杂的布局简单的属性设置无法达到这样的效果,例如top,center,bottom三层的布局,很可能因为中间层(center)的数据太多而将无法显示全或者将bottom层挤下去。解决这个问题,在采用RelativeLayout布局时,除了设置android:layout_alignParentBottom=”true”外,还需要对中间层进行属性进行设置:android:layout_above=”@id/bottom” 
android:layout_below=”@id/top”。这样的设置即确保center层能处于中间位置,也可以通过自适应显示滚动条。 
以下的例子就是实现三层布局的底部布局的功能。如图1,2。 
 图-1 三层的底部布局界面 
 图 2 弹出输入法时显示的底部按钮 
项目只是实现主要的数据填充及布局,故只是简单的文件加载。以下是源码: 
BottomTestActivity.java  
package com.BottomTest.main; 
import java.util.ArrayList; 
import java.util.HashMap; 
import android.app.Activity; 
import android.os.Bundle; 
import android.widget.ListView; 
import android.widget.SimpleAdapter; 
publicclass BottomTestActivityextends Activity { 
/** Called when the activity is first created. */ 
@Override 
publicvoid onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
ListView list = (ListView) findViewById(R.id.friends); 
//存储数据的数组列表 
ArrayList<HashMap<String, Object>> listData=new ArrayList<HashMap<String,Object>>(); 
String []name={"William","Charles","Linng","Json","Bob","Carli"}; 
String []id={"12","16","33","21","34","22"}; 
for(int i=0;i<6;i++){ 
HashMap<String, Object> map=new HashMap<String, Object>(); 
map.put("friend_image", R.drawable.icon); 
map.put("friend_username", name[i]); 
map.put("friend_id", id[i]); 
listData.add(map); 
} 
//适配器 
SimpleAdapter listItemAdapter=new SimpleAdapter(this, 
listData, 
R.layout.item, 
new String[] {"friend_image","friend_username","friend_id" }, 
newint[] { R.id.friend_image, R.id.friend_username, R.id.friend_id }); 
list.setAdapter(listItemAdapter); 
} 
} 
 主要布局文件 
main.xml 
 
<?xmlversion="1.0"encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical"> 
<RelativeLayoutandroid:id="@+id/bottom" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" > 
<LinearLayoutandroid:id="@+id/top" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" > 
<EditTextandroid:id="@+id/view_user_input" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="6dip" 
android:layout_marginLeft="12dip" 
android:singleLine="true" 
android:numeric="integer" 
android:imeOptions="actionDone" 
android:hint="输入用户ID" 
android:layout_weight="1"/> 
<Buttonandroid:id="@+id/view_user" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="4dip" 
android:layout_weight="3" 
android:text="查看"/> 
</LinearLayout> 
<LinearLayoutandroid:id="@+id/center" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" 
android:layout_above="@id/bottom" 
android:layout_below="@id/top"> 
<TextViewandroid:id="@+id/my_friends_list" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="好友列表" 
android:paddingTop="6dip" 
android:paddingLeft="2dip" 
android:layout_marginLeft="10dip"/> 
<ListViewandroid:id="@+id/friends" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_marginBottom="6dip"/> 
</LinearLayout> 
<LinearLayoutandroid:id="@+id/bottom" 
android:background="@drawable/bg" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" 
android:layout_alignParentBottom="true" > 
<Buttonandroid:id="@+id/refresh" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="2dip" 
android:text="刷新用户列表" 
android:layout_weight="1"/> 
<Buttonandroid:id="@+id/back" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="2dip" 
android:text="返回" 
android:layout_weight="1"/> 
</LinearLayout> 
</RelativeLayout> 
</LinearLayout> 
 listview item内容的布局文件 
item.xml 
 
<?xmlversion="1.0"encoding="utf-8"?> 
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/RelativeLayout" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:paddingBottom="4dip" 
android:paddingRight="12dip"> 
<ImageViewandroid:id="@+id/friend_image" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:paddingTop="6dip" 
android:paddingLeft="2dip" 
android:layout_centerVertical="true" 
android:layout_alignParentLeft="true"/> 
<TextViewandroid:id="@+id/friend_username" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:textSize="18dip" 
android:textColor="#ccc" 
android:paddingTop="6dip" 
android:paddingRight="2dip" 
android:layout_toRightOf="@id/friend_image" /> 
<TextViewandroid:id="@+id/friend_id" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_below="@+id/friend_username" 
android:layout_marginRight="36dip" 
android:paddingRight="2dip" 
android:layout_toRightOf="@id/friend_image" 
android:textColor="#fff" 
android:maxLines="2"/> 
</RelativeLayout>