在App中使用两个谷歌地图v2对象

时间:2013-07-30 21:58:42

标签: android android-fragments google-maps-android-api-2 supportmapfragment

我正在尝试在我的应用程序中使用两个映射,其中我只有一个活动,并且在不同的选项卡中显示了几个片段。我有一个片段,地图覆盖整个布局,另一个片段只是布局的一小部分。

第一个工作正常我但添加第二个地图会导致我的应用程序崩溃,从而导致通货膨胀异常。

以下是xml布局。

拳头xml 1

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#fff"
android:focusable="true"
android:focusableInTouchMode="true" >

<RelativeLayout
    android:id="@+id/relativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:background="@color/grey"
    android:paddingBottom="5dp"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:paddingTop="5dp" >

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:background="@drawable/search_bar"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:paddingTop="5dp" >

        <ImageButton
            android:id="@+id/button3"
            android:layout_width="@dimen/title"
            android:layout_height="@dimen/title"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:background="@drawable/search"
            android:contentDescription="@string/search" />

        <AutoCompleteTextView
            android:id="@+id/location_search"
            android:layout_width="wrap_content"
            android:layout_height="@dimen/etext_height"
            android:layout_centerVertical="true"
            android:layout_toLeftOf="@+id/search_cancel"
            android:layout_toRightOf="@+id/button3"
            android:background="#00ffffff"
            android:hint="@string/search_msg"
            android:inputType="text"
            android:paddingLeft="15dp"
            android:paddingRight="15dp"
            android:popupBackground="@drawable/drop_down_bg"
            android:textColor="@color/text_grey"
            android:textSize="@dimen/stat_tx" >
        </AutoCompleteTextView>

        <Button
            android:id="@+id/search_cancel"
            android:layout_width="@dimen/title"
            android:layout_height="@dimen/title"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:background="@drawable/pop_up_close" />
    </RelativeLayout>
</RelativeLayout>


<FrameLayout
    android:id="@+id/frameline"
    android:layout_width="wrap_content"
    android:layout_height="2dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/relativeLayout1"
    android:background="@color/light_pink" >
</FrameLayout>

<fragment 
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"     
    android:layout_below="@+id/frameline"
    class="com.app.custom.views.TransparentSupportMapFragment" />

XML 2

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/grey"
android:paddingTop="3dp" >

<FrameLayout
    android:id="@+id/frameLayout13"
    android:layout_width="wrap_content"
    android:layout_height="0.5dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:background="@color/divider" >
</FrameLayout>

<FrameLayout
    android:id="@+id/frameLayout1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/frameLayout13"
    android:background="@drawable/title_bg" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:padding="10dp"
        android:text="@string/description"
        android:textColor="@color/text_grey"
        android:textSize="@dimen/event_list_text_large" />
</FrameLayout>

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/bottom_frame"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/frameLayout1" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <RelativeLayout
            android:id="@+id/relativeLayout1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/linearLayout1"
            android:layout_alignRight="@+id/linearLayout1"
            android:layout_below="@+id/linearLayout1"
            android:layout_marginBottom="10dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="5dp" >

            <TextView
                android:id="@+id/club_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/linearLayout1"
                android:layout_below="@+id/relativeLayout1"
                android:textColor="@color/light_pink"
                android:textIsSelectable="false"
                android:textSize="@dimen/event_list_text_large" />

            <TextView
                android:id="@+id/show_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_below="@+id/event_name"
                android:layout_marginTop="-3dp"
                android:textColor="@color/text_grey_dark"
                android:textIsSelectable="false"
                android:textSize="@dimen/event_list_text_large" />

            <TextView
                android:id="@+id/event_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_below="@+id/club_name"
                android:paddingTop="4dp"
                android:textColor="@color/text_grey_dark"
                android:textIsSelectable="false"
                android:textSize="@dimen/event_list_text_large" />

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentRight="true"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/event_price"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="right"
                    android:textColor="@color/text_grey_dark"
                    android:textIsSelectable="false"
                    android:textSize="@dimen/title"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/event_time"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="right"
                    android:textColor="@color/light_pink"
                    android:textIsSelectable="false"
                    android:textSize="@dimen/event_list_text_small" />

                <TextView
                    android:id="@+id/event_date"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="right"
                    android:layout_marginTop="-3dp"
                    android:drawableLeft="@drawable/clock"
                    android:drawablePadding="5dp"
                    android:textColor="@color/light_pink"
                    android:textIsSelectable="false"
                    android:textSize="@dimen/event_list_text_small" />
            </LinearLayout>
        </RelativeLayout>


        <LinearLayout
            android:id="@+id/linearLayout3"
            android:layout_width="match_parent"
            android:layout_height="@dimen/event_row_height2"
            android:layout_alignLeft="@+id/relativeLayout1"
            android:layout_alignRight="@+id/relativeLayout1"
            android:layout_below="@+id/venue_address"
            android:layout_marginBottom="3dp"
            android:layout_marginTop="3dp"
            android:background="#fff" >

            <fragment
                android:id="@+id/map22"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginLeft="-50dp"
                android:layout_marginRight="-50dp"
                class="com.fixr.custom.views.TransparentSupportMapFragment" />
        </LinearLayout>
    </RelativeLayout>
</ScrollView>
</RelativeLayout>

使用两张地图与使用一张地图的过程是一样的,还是我需要做的事情。

1 个答案:

答案 0 :(得分:0)

我很确定你无法在<ScrollView>.内绘制地图 我还建议尽量不要在地图上使用负边距。

P.S。你的布局中有很多额外的组件,不需要在那里,你会发现减少它们会提高你的应用程序的性能。

实施例: 1)

<FrameLayout
    android:id="@+id/frameLayout1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/frameLayout13"
    android:background="@drawable/title_bg" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:padding="10dp"
        android:text="@string/description"
        android:textColor="@color/text_grey"
        android:textSize="@dimen/event_list_text_large" />
</FrameLayout>

可以更改为:

<TextView
    android:id="@+id/textView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/frameLayout13"
    android:layout_gravity="center"
    android:background="@drawable/title_bg"
    android:gravity="center"
    android:padding="10dp"
    android:text="@string/description"
    android:textColor="@color/text_grey"
    android:textSize="@dimen/event_list_text_large" />

2)需要分为<View>

的分隔符
<FrameLayout
    android:id="@+id/frameLayout13"
    android:layout_width="wrap_content"
    android:layout_height="0.5dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:background="@color/divider" >
</FrameLayout>

可以更改为:

<View
    android:id="@+id/frameLayout13"
    android:layout_width="wrap_content"
    android:layout_height="0.5dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:background="@color/divider" />