我想要一个布局,以便用户可以在listview和mapview以及菜单按钮点击之间切换。首次创建活动时,它从服务器和显示列表结果中获取数据,并在菜单按钮上单击映射mapview上的所有结果。 我遇到的问题是在用户点击刷新结果菜单按钮后,一次又一次显示加载屏幕。 我的布局如下,活动扩展了MapActivity。当调用notifyDataSetInvalidated()时列表数据可用时,我希望加载视图消失。我在没有mapview的情况下在其他活动中使用了类似的逻辑,并且活动扩展了listactivity并且它可以工作但不是在这种情况下。
<?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>
答案 0 :(得分:1)
我决定使用FrameLayout并根据要显示的内容在这3个视图之间切换。