在ListView中从顶部显示记录

时间:2013-02-25 05:58:46

标签: android android-listview

我正在编写一个应用程序,其中我将在接下来的30天内获取那些生日的Facebook好友列表,我也能够获取它。

但我面临非常小的问题

我看到如果我在列表中有超过4条记录,那么我从顶部获取朋友列表,如果我在列表中有1或2条记录,那么我在底部得到结果,如下面的屏幕截图:

请告诉我如何解决这个问题,我w * ant将这些记录显示在最底层而不是底部...... *

activityfb_friends.xml:

  <?xml version="1.0" encoding="utf-8"?>

<ListView
    android:id="@+id/friends_list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:cacheColorHint="#00000000"
    android:divider="#b5b5b5"
    android:layout_above="@+id/greeting"
    android:dividerHeight="1dp" />

 <ImageButton
    android:id="@+id/greeting"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:background="@drawable/greet"
    android:layout_marginTop="10dp" 
    android:layout_marginBottom="10dp" />

</RelativeLayout>

listfb_friends.xml:

   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="5dp"
android:background="@drawable/btn_background"
android:gravity="center"
android:orientation="horizontal"
android:padding="5dip" >

<RelativeLayout
    android:id="@+id/friend_item"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_marginRight="5dip"
    android:background="@drawable/image_background"
    android:padding="3dip" >

    <ImageView
        android:id="@+id/picture"
        android:layout_width="50dip"
        android:layout_height="50dip"
        android:src="@drawable/img"/>
</RelativeLayout> 

<TextView
    android:id="@+id/name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/friend_item"
    android:layout_toRightOf="@+id/friend_item"
    android:textColor="#324e87"
    android:textSize="15dip"
    android:textStyle="bold"
    android:typeface="sans" />

<TextView
    android:id="@+id/dob"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/name"
    android:layout_marginTop="1dip"
    android:layout_toRightOf="@+id/friend_item"
    android:textColor="#343434"
    android:textSize="15dip"
    />

 </RelativeLayout>

2 个答案:

答案 0 :(得分:4)

问题是@+id/friends_list的布局。您已将其设为layout_height="wrap_content",并设置为layout_above="@+id/greeting"。这意味着它只需要适合所包含的项目所需的大小,它将出现在问候按钮(您已锚定到容器底部)的正上方。

最简单的解决方案是删除layout_above并将其替换为android:layout_alignParentTop="true"。这会将列表锚定到容器的顶部,而不是在问候图像按钮上方。

答案 1 :(得分:2)

尝试在列表视图中添加{id}为friends_list

android:layout_alignParentTop="true"