Я пишу свое первое приложение для Android (я ноб у android, но порядочный в java). Первый экран приложения состоит из огромного списка (около 1.5K элементов) объектов Manga. Код, который я использую следующие:Контакт-приложение, как прокручиваемый список на android
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, и это последняя обновленная дата в нижнем тексте. Однако (это может быть вызвано виртуализацией устройства, хотя), результат очень медленный. Прокрутка списка выполняется навсегда, и вы можете прокручивать только маленькие точки времени. Как заставить список работать так же, как в приложении-контактах? Таким образом, когда вы начинаете прокручивать дескриптор, выпадаете в правой части экрана, и когда вы перетаскиваете его, появляется сообщение о том, как далеко вы прокручиваете (список сортируется в алфавитном порядке), а также есть способ, которым я может улучшить производительность списка?