Android Map Fragment涵盖了它下面的组件

时间:2014-08-06 19:43:14

标签: android

目前我正在尝试使用如下布局:
[文本字段]
[地图片段]
[AD]

但是,地图涵盖了它下面的任何组件。我使用的基本上与我在另一个活动中的确切布局一样,它是组件 - >片段 - >广告,显示完美。下面是我的xml。谢谢你的帮助!

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<EditText
    android:id="@+id/query_field"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="Search for tweets here..." />

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

    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:map="http://schemas.android.com/apk/res-auto"
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        tools:context=".MapsActivity"
        tools:layout="@layout/test"
        map:uiZoomControls="false"
        />

    <ProgressBar
        android:id="@+id/map_progress"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:indeterminate="true"
        android:visibility="gone" />

</RelativeLayout>

<com.google.android.gms.ads.AdView
    android:id="@+id/list_ad_map"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    ads:adSize="SMART_BANNER"
    ads:adUnitId="@string/ad_unit"
    />

修改:将android:layout_weight="1"添加到RelativeLayout可以正确显示。如果有人能够解释原因或提供更好的解决方案,那将是非常棒的。这是编辑后的代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<EditText
    android:id="@+id/query_field"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="Search for tweets here..." />

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

    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:map="http://schemas.android.com/apk/res-auto"
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        tools:context=".MapsActivity"
        tools:layout="@layout/test"
        />

    <ProgressBar
        android:id="@+id/map_progress"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:indeterminate="true"
        android:visibility="gone" />

</RelativeLayout>

<com.google.android.gms.ads.AdView
    android:id="@+id/list_ad_map"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    ads:adSize="SMART_BANNER"
    ads:adUnitId="ca-app-pub-XXXXXX"
    />

1 个答案:

答案 0 :(得分:0)

您可以尝试更改为RelativeLayout并使用layout_above中的xml。那应该解决这个问题。

请参阅以下代码。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<EditText
    android:id="@+id/query_field"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="Search for tweets here..." />

<com.google.android.gms.ads.AdView
    android:id="@+id/list_ad_map"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    ads:adSize="SMART_BANNER"
    ads:adUnitId="@string/ad_unit" />

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:layout_above="@+id/list_ad_map">

    <fragment
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:map="http://schemas.android.com/apk/res-auto"
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        map:uiZoomControls="false"
        tools:context=".MapsActivity"
        tools:layout="@layout/test" />

    <ProgressBar
        android:id="@+id/map_progress"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:indeterminate="true"
        android:visibility="gone" />
</RelativeLayout> 
</RelativeLayout>