2011-01-10 13 views
1

Ich möchte ein Layout, so dass Benutzer zwischen Listview und Mapview und Menübutton klicken können. Wenn die Aktivität zum ersten Mal erstellt wird, ruft sie Daten vom Server ab und zeigt das Ergebnis der Listenliste an. Das Problem, das ich habe, zeigt den Ladebildschirm anfänglich und wieder nach Benutzer klicken Sie auf Refresh-Menü-Schaltfläche. Mein Layout ist unten, Aktivität erweitert MapActivity. Ich erwarte, dass die Ladeansicht verloren geht, wenn Listendaten verfügbar werden, wenn notifyDataSetInvalidated() aufgerufen wird. Ich habe ähnliche Logik in anderen Aktivitäten ohne Mapview verwendet und Aktivität erweitert Listaktivität und es funktioniert, aber nicht in diesem Fall.android listview mapview layout Problem

<?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> 

Antwort

1

Ich habe beschlossen, FrameLayout zu verwenden und wechseln zwischen diesen drei Ansichten auf, was angezeigt werden soll.