我似乎无法找到一种方法来制作包含 ListView 的布局,该 ListView 显示我的联系人的整个列表(它是一个长列表),在列表下方有 2 个按钮一个挨着另一个。
它吓坏了我,我做的任何事情似乎都不起作用。我搜索了一些相关的问题并找到了这个:Android Layout with ListView and Buttons ,但没有一个替代解决方案对我有用。
当我查看(eclipse)的图形演示时,它看起来很好,但是当我在我的设备上运行它时,我只能看到联系人列表。listView 与按钮重叠。
我正在使用一个simpleList,它呈现在另一个代表一行的布局上。我开始怀疑我以编程方式做的事情毁了它,因为我跑了我的java代码,发现没有提到我正在谈论的activity_contact_list。仅连接到行布局。
所以我得到了这个activity_contact_list.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/contact_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_alignParentTop="true" >
</ListView>
<LinearLayout
android:id="@+id/buttons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_weight="1.0"
android:orientation="horizontal" >
<Button
android:id="@+id/action_cancel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Cancle" />
<Button
android:id="@+id/action_add"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Add" />
</LinearLayout>
</LinearLayout>
这是经过多次尝试,例如:使用 RelativeLayout 而不是 LinearLayout,将 ListView 的代码放在按钮的 LinearLayout 下面等等。
这是活动的代码:ContactList.java:
public class ContactList extends ListActivity{
//some global variables for late use.
public Model model;
SimpleAdapter adapter;
List<Map<String, String>> data; /* data is a list of Map */
String[] from = {"name","phone"}; /* names of the columns */ //TODO - add date!
int[] to = {R.id.name, R.id.number};
List<Contact> contacts; /* list of contacts */
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_contact_list);
// Set up the action bar.
final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
actionBar.setDisplayHomeAsUpEnabled(true);
model = Model.getInstance(this);
data = new ArrayList<Map<String, String>>();
contacts = fillContactsList();
fill_data();
adapter = new SimpleAdapter(this, data, R.layout.contact_list_row, from, to);
setListAdapter(adapter);
}
我评论了该setContentView
行,因为它无法以其他方式编译...
正如所说。该列表完全有效。但它与活动底部的按钮重叠。任何想法?我敢肯定我错过了一些愚蠢的东西。
提前致谢!