在android上的联系方式,如滚动列表

时间:2010-04-09 11:55:55

标签: android listview

我正在编写我的第一个Android应用程序(我在Android上是一个菜鸟,但在java上不错)。该应用程序的第一个屏幕包含一个巨大的列表(大约1.5K项)的漫画对象。我使用的代码如下:

main.xml中:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        xmlns:android="http://schemas.android.com/apk/res/android">
        <ListView android:layout_height="fill_parent"
            android:layout_width="fill_parent"
            android:id="@+id/android:list"></ListView>
        <TextView android:layout_height="fill_parent"
            android:layout_width="fill_parent"
            android:text="@string/list_no_items"
            android:id="@+id/android:empty"></TextView>
</LinearLayout>

row.xml:

<LinearLayout android:id="@+id/LinearLayout01"
              android:layout_width="fill_parent" 
              android:layout_height="?android:attr/listPreferredItemHeight"
              android:padding="6dip"
              xmlns:android="http://schemas.android.com/apk/res/android">
    <ImageView
        android:id="@+id/icon"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_marginRight="6dip"
        android:src="@drawable/icon" />
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="fill_parent">
        <TextView
            android:id="@+id/toptext"
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1"
            android:gravity="center_vertical"
        />
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1" 
            android:id="@+id/bottomtext"
            android:singleLine="true"
            android:ellipsize="marquee"
        />
    </LinearLayout>
</LinearLayout>

然后我有一个适配器,它基本上接受一个Manga对象并将它的名字放在行的toptext中,它是最新的更新日期。但是,(这可能是由于单元的虚拟化引起的),结果非常慢。滚动列表需要永远,你只能滚动时间的小和平。如何使列表与contacts-app中的列表一样工作?因此,当你开始滚动时,屏幕右侧弹出一个手柄,当你拖动它时,字母会显示你滚动的距离(列表按字母顺序排序),还有,有一种方法我可以改善清单的表现吗?

1 个答案:

答案 0 :(得分:7)

要添加拇指滚动条,请在main.xml中调整ListView,如下所示:

<ListView android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:id="@+id/android:list"
        android:fastScrollEnabled="true"></ListView>

添加android:fastScrollEnabled="true"属性。

https://developer.android.com/reference/android/widget/AbsListView.html#attr_android:fastScrollEnabled

您还可以查看使用SectionIndexer