在mapView上显示listView

时间:2013-08-07 09:25:53

标签: android layout android-mapview android-tabhost google-maps-android-api-2

我想在mapView上显示一个listView,如下图谷歌地图app。

最初只有地图可见。当用户单击选项卡时,我希望此listView显示在mapView上。

enter image description here

但问题是使用下面的布局不会显示地图(灰色屏幕可见)。但是,会显示listView

布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/pickMatchesLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TabHost
        android:id="@+id/tabHost"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >

            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >
            </TabWidget>

            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="match_parent"
                android:layout_height="match_parent" >

                <RelativeLayout
                    android:id="@+id/map_layout"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" >

                    <fragment
                        android:id="@+id/map"
                        android:name="com.google.android.gms.maps.MapFragment"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent" />

                    <include layout="@layout/listView" >
                    </include>
                </RelativeLayout>
            </FrameLayout>
        </LinearLayout>
    </TabHost>

</RelativeLayout>

设置标签的方法:

// Set up tabs
private void setUpTabs() {

    // Get TabHost
    tabHost = (TabHost) findViewById(R.id.tabHost);
    tabHost.setup();

    // Create tabs
    TabSpec sourceOnlyState = tabHost.newTabSpec(SOURCE_ONLY_STATE);
    sourceOnlyState.setContent(R.id.map);
    sourceOnlyState.setIndicator("Source Only");

    TabSpec allState = tabHost.newTabSpec(ALL_STATE);
    allState.setContent(R.id.map);
    allState.setIndicator("All");

    TabSpec mapTypes = tabHost.newTabSpec(MAP_FEATURES);
    mapTypes.setContent(R.id.map_layout);
    mapTypes.setIndicator("Map Types");

    // Add tabs in TabHost
    tabHost.addTab(sourceOnlyState);
    tabHost.addTab(allState);
    tabHost.addTab(mapTypes);

    // Set tab change listener
    tabHost.setOnTabChangedListener(this);
}

1 个答案:

答案 0 :(得分:0)

单击选项卡启动新活动,并在该活动中执行与listview相关的所有代码,并为活动设置主题

android:theme="@android:style/Theme.Holo.Dialog.NoActionBar"