在ListActivity
中,我有一个"更多"列表下方Button
。
当我点击它时,结果会正确地添加到列表中,但问题后按钮会消失!我希望它留在那里,用户当然可以再次加载更多数据!
代码是:
btnMoreItems.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// some fake data
for (int i = 10; i < 20; i++) {
data.add( // fake data to attach to the list //);
}
setListAdapter(new MyCustomArrayAdapter(MyListActivity.this, data));
}
});
,布局如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ListView
android:id="@+id/android:list"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
<TextView
android:id="@+id/android:empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/myListEmpty" />
<Button
android:id="@+id/btnMoreItemsLoad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
→ → android:layout_below="@+id/android:list ← ← ← ← ←
android:text="@string/moreItems" />
</RelativeLayout>
当活动第一次加载时,按钮位于正确的位置。但是当点击它时,它会消失在添加的项目后面。
使用此行: android:layout_below="@+id/android:list
我希望按钮保持在其位置(我的意思是在列表中的最后一项之下)
感谢您的帮助...
答案 0 :(得分:0)
将布局更改为以下内容:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ListView
android:align_parentTop="true" ← ← ← ← ←
android:layout_weight="1" ← ← ← ← ←
android:id="@+id/android:list"
android:layout_width="match_parent"
android:layout_height="0dp" >
</ListView>
<TextView
android:id="@+id/android:empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/myListEmpty" />
<Button
android:layout_weight="0" ← ← ← ← ←
android:align_parentBottom="true" ← ← ← ← ←
android:id="@+id/btnMoreItemsLoad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/android:list
android:text="@string/moreItems" />
</RelativeLayout>
答案 1 :(得分:0)
试试这段代码
<TextView
android:id="@+id/android:empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/myListEmpty" />
<ListView
android:id="@+id/android:list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/android:empty"
android:layout_marginTop="5dp" >
</ListView>
<Button
android:id="@+id/btnMoreItemsLoad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/android:list"
android:text="@string/moreItems" />
</RelativeLayout>