Мне нужен такой макет, чтобы пользователь мог переключаться между просмотром списка и просмотром карты и нажатием кнопки меню. Когда действие создается впервые, оно получает данные с сервера и выводит список результатов, а при нажатии кнопки меню отображает все результаты в просмотре карты.
Проблема, с которой я сталкиваюсь, - это отображение экрана загрузки вначале и снова после того, как пользователь нажмет кнопку обновления меню результатов.
Мой макет ниже, активность расширяет MapActivity. Я ожидаю, что представление загрузки исчезнет, когда данные списка станут доступны, когда вызывается notifyDataSetInvalidated (). Я использовал подобную логику в других действиях без просмотра карты, и действие расширяет списки активности, и это работает, но не в этом случае.
<?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="fill_parent"
android:orientation="vertical"
>
<LinearLayout
android:id="@+id/data_view"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
>
<ListView
android:id="@android:id/list"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:drawSelectorOnTop="false"
android:scrollbars="vertical"
/>
<com.google.android.maps.MapView
android:id="@+id/map_view"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:clickable="true"
android:visibility="gone"
android:apiKey="@string/google_maps_api_key"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:background="@color/white"
>
<ProgressBar
android:id="@+id/emptyProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="6dip"
style="?android:attr/progressBarStyleSmall"
/>
<TextView
android:id="@+id/emptyText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/loading"
/>
</LinearLayout>
</LinearLayout>