我正在编写我的第一个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中的列表一样工作?因此,当你开始滚动时,屏幕右侧弹出一个手柄,当你拖动它时,字母会显示你滚动的距离(列表按字母顺序排序),还有,有一种方法我可以改善清单的表现吗?
答案 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"
属性。
您还可以查看使用SectionIndexer。