Ниже приведен мой макет для шаблона строки в SimpleCursorAdapter.
ImageView с идентификатором next_arrow навсегда исчезает при изменении ориентации (возврат к исходной ориентации не делает его повторнопоявляются).Если я заменю @ drawable / arrow на @ drawable / icon (копия стандарта sym_def_app_icon ), это будет работать нормально.Все рассматриваемые элементы рисования простые ссылки на файлы PNG .
Я думал, что это может быть как-то связано с иконками разных размеров, но я изменил размер @ drawable / icon, чтобы он был точнымте же размеры, что и стрелка, и она все еще работала нормально, в то время как стрелка не работала.
Обновление
Хорошо, это становится еще более странным.Я переименовал arrow.png в нечто_not_called_arrow.png и ... это работает.Что происходит?
Я не первый раз вижу, как это происходит.Ранее сегодня у меня был еще один нарисованный PNG, который хорошо отображался в представлении Eclipse Graphical Layout, но вообще не отображался в эмуляторе или на устройстве, пока я не переименовал файл.Я попытался очистить и обновить проект, а также перезапустить Eclipse.
Другое обновление
Только что это повторилось в другой ситуации.В Activity onCreate () я вызываю findViewById () для нескольких ресурсов, чтобы настроить их, все отлично работает при первой загрузке.Когда onCreate () вызывается из-за изменения ориентации, findViewById () возвращает null для всех этих ресурсов.Это сводит с ума, и ответы, которые включают android:configChanges="keyboardHidden|orientation"
, вовсе не являются реальными решениями, они просто маскируют проблему.
В этом случае я «исправил» это, переименовав макет xml для действия из share.xml до share_activity_layout.xml .Я начинаю думать, что есть какая-то ошибка в генерации файлов R и управлении идентификаторами ресурсов в целом.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="90dp"
android:background="@drawable/product_list_divider"
android:paddingTop="10dp">
<ImageView android:src="@drawable/ninja_20_65"
android:id="@+id/category_icon"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_marginTop="3dp"/>
<LinearLayout android:orientation="vertical"
android:layout_weight="5"
android:layout_width="0dp"
android:layout_height="wrap_content">
<TextView android:id="@+id/category_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Name"
style="@style/CategoryHeading" android:layout_marginTop="5dp"/>
<TextView android:id="@+id/category_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Description"
style="@style/CategoryDescription"/>
</LinearLayout>
<ImageView android:src="@drawable/arrow"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_marginRight="10dp"
android:layout_height="wrap_content" android:layout_marginTop="20dp" android:id="@+id/next_arrow"/>
</LinearLayout>
Я использую Android 2.1.