0

我尝试编写此代码,但在页眉和页脚应该加载的部分出现错误。我从这篇文章 Android ListActivity - 固定页眉和页脚中得到了这个,我只是检查希望这不会导致人们错误代码...错误提示错误:在包'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

   }
 }
4

1 回答 1

2

在 main.xml中更改android:belowandroid:layout_belowandroid:aboveandroid:layout_above

编辑:还有其他方法可以做到这一点,可能会更好。

选项 A:改为使用垂直 LinearLayout。注意列表视图的布局属性;这些将允许它伸展以填充页眉和页脚视图未占用的空间。

<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:如果您不调用,ListActivity 会自动为您提供一个 ListView setContentView()。在这种情况下,您将自己创建或扩展页眉和页脚视图,并将它们添加到代码中的列表视图中。

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);
    /* ... */
}
于 2013-04-07T02:49:52.253 回答