我试过制作这段代码,但我在页眉和页脚要加载的部分出现错误。我从这篇文章得到了这个Android ListActivity - fixed header and footer我只是检查希望这不会引导人们错误的代码...错误说 错误:在'android'包中找不到属性'above'的资源标识符 错误:在'android'
包中找不到属性'below'的资源标识符或者我只是把它弄错了当我错了时忽略它
In main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<include
android:id="@+id/header_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
layout="@layout/header.xml" />
<ListView
android:id="@+id/list_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:below="@id/header_layout"
android:above="@id/footer_layout" />
<include
android:id="@+id/footer_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
layout="@layout/footer.xml" />
</RelativeLayout>
In header.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/header_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Your Application Title"/>
</LinearLayout>
In footer.xml`enter code here`
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/done_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Done"/>
</LinearLayout>
在活动中,在这里
public class MainActivity extends ListActivity {
private ListView mListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mListView = (ListView) findViewById(R.id.list_view);
// Now you can do whatever you want
}
}
答案 0 :(得分:2)
在main.xml中将android:below
更改为android:layout_below
并将android:above
更改为android:layout_above
修改强>: 还有其他方法可以实现这一点,可能会更好。
选项A :改为使用垂直LinearLayout。注意listview的布局属性;这些将允许它拉伸以填充页眉和页脚视图未采用的空间。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<include
android:id="@+id/header_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
layout="@layout/header.xml" />
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<include
android:id="@+id/footer_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
layout="@layout/footer.xml" />
</LinearLayout>
选项B :如果您不拨打setContentView()
,ListActivity会自动为您提供ListView。在这种情况下,您可以自己创建或扩展页眉和页脚视图,并将它们添加到代码中的列表视图中。
public void onCreate(Bundle saved) {
super(saved);
ListView list = getListView();
LayoutInflater inflater = getLayoutInflater();
View headerView = inflater.inflate(R.layout.header, list, false);
View footerView = inflater.inflate(R.layout.footer, list, false);
// these must be called before list.setAdapter()
list.addHeaderView(headerView);
list.addFooterView(footerView);
/* ... */
}