MapFragment右上角的按钮

时间:2014-03-27 09:31:35

标签: java android google-maps admob

我想要做的是在MapFragment v2的左下角添加Button。

问题是我的MapFragment位于LinearLayout内部,因为它下面还有AdView,所以我无法使用PARENT对齐。

我的代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.powa.Activites.MapActivity"
    tools:ignore="MergeRootFrame">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
    >

    <fragment
        android:id="@+id/map"
        class="com.google.android.gms.maps.MapFragment"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

        <Button
            android:id="@+id/mailBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/map"
            android:layout_alignLeft="@+id/map"
            android:text="MAIL" />
    </RelativeLayout>

<com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/map"
    android:background="@color/black"
    ads:adSize="SMART_BANNER"
    ads:adUnitId="XOXOXOXO" />

当我使用它时,我的MapFragment根本没有出现。

希望看下面。

 _____________________
|                    |
|                    |
|                    |
|                    |
|     MapFragment    |
|                    |
|                    |
|                    |
|                    |
| {Button}           |
|____________________|
|                    |
|       AdView       |
|____________________|

3 个答案:

答案 0 :(得分:2)

权重仅适用于线性布局,因此请在地图片段上提供高度并移除权重

   <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1">

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

        <Button
            android:id="@+id/mailBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/map"
            android:layout_alignLeft="@+id/map"
            android:text="MAIL" />
    </RelativeLayout>

答案 1 :(得分:1)

您可以将所有内容放在 RelativeLayout 中,将AdView设置为

android:layout_alignParentBottom="true" 

和MapFragment with

android:layout_above="@+id/adView" 

答案 2 :(得分:0)

试试这个..

fragment改为match_parent并删除android:layout_weight="1"

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_weight="1">

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

    <Button
        android:id="@+id/mailBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/map"
        android:layout_alignLeft="@+id/map"
        android:text="MAIL" />
</RelativeLayout>