我只想清除这段代码

时间:2013-04-07 02:45:25

标签: android

我试过制作这段代码,但我在页眉和页脚要加载的部分出现错误。我从这篇文章得到了这个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

   }
 }

1 个答案:

答案 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);
    /* ... */
}