необычная ошибка Listview

1

Я сделал небольшое приложение для 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>

Любое возможное предложение?

  • 0
    Это похоже на проблему с адаптером, когда представления перерабатываются и корректно не обновляются. Как выглядит метод getView вашего адаптера?
  • 0
    Я думаю, что это в некоторой степени связано с макетом. Потому что все абсолютно нормально, когда ориентация вертикальная. Я проигрываю видео и возвращаюсь к своему списку, который остается в порядке, но только когда ориентация меняется на горизонтальную, возникают все проблемы (порядок списков меняется). Есть идеи?
Показать ещё 7 комментариев
Теги:
video
listview
orientation

1 ответ

0

когда ориентация меняется от горизонтали к портрету и наоборот, действие будет воссоздавать себя (объект Activity destroy и новый объект Activity будет создан). См. документы http://developer.android.com/reference/android/app/Activity.html #ConfigurationChanges для получения дополнительной информации

Ещё вопросы

Сообщество Overcoder
Наверх
Меню