Я сделал небольшое приложение для Android, которое ведет список видеофайлов на SD-карте и воспроизводит его. Я использую listview с текстом и двумя изображениями в каждой строке. Проблема, которую я только что заметил, довольно обычна. В горизонтальном режиме только те элементы списка, которые вписываются в область экрана, выглядят как обычно, в то время как те элементы, которые требуют прокрутки для появления, находятся либо в неправильном порядке, либо просто повторяют элементы в верхней части списка. Более того, прокручивая вверх и вниз, иногда меняется порядок элементов. Я использую два xml файла. Сначала для просмотра списка и второй для содержимого списка. вот код для обоих XML файлов
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView
android:id="@+id/list"
android:listSelector="@android:color/transparent"
android:divider="@drawable/bwgradient"
android:dividerHeight="1.5px"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/image"
android:layout_width="50dip"
android:layout_height="50dip"
android:layout_marginTop="2dip"
android:layout_marginBottom="2dip"
android:src="@drawable/cover"
android:scaleType="centerCrop"/>
<TextView
android:id="@+id/text"
android:state_focused="false"
android:listSelector="#00000000"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="left|center_vertical"
android:textSize="14dip"
android:layout_marginLeft="20dip"/>
<ImageView
android:id="@+id/play"
android:layout_width="30dip"
android:layout_height="30dip"
android:src="@drawable/play"
android:onClick="imageClick"
android:layout_gravity="center"
android:layout_marginRight="20dip"
android:scaleType="centerCrop"/>
</LinearLayout>
Любое возможное предложение?
когда ориентация меняется от горизонтали к портрету и наоборот, действие будет воссоздавать себя (объект Activity destroy и новый объект Activity будет создан). См. документы http://developer.android.com/reference/android/app/Activity.html #ConfigurationChanges для получения дополнительной информации