MapFragment不尊重match_parent

时间:2014-09-19 19:55:34

标签: java android mapfragment

我有一个滚动视图,其中包含一个地址部分,一些按钮和一个我希望以下列格式显示的地图:

Template

以下是我得到的结果:

enter image description here

由于一些奇怪的原因,我无法强制MapFragment尊重matchparent属性,它总是证明是一个特定的默认高度。这是基本的XML:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/tile_view"
        android:orientation="vertical"
        android:padding="10dp">

        <!-- Address -->
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textAppearance="@style/agencyAddress"/>

        <!-- Map and Buttons -->
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:baselineAligned="false"
            android:paddingTop="5dp">

            <!-- Map -->
            <fragment
                android:id="@+id/agency_map"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_toRightOf="@+id/buttons"
                android:layout_toEndOf="@+id/buttons"
                class="com.google.android.gms.maps.MapFragment" />

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/buttons"
                android:orientation="vertical">

                <ImageButton
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/random_image"
                    android:src="@drawable/random_image"/>

                <ImageButton
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/random_image2"
                    android:src="@drawable/random_image"/>

            </LinearLayout>

        </RelativeLayout>

    </LinearLayout>

2 个答案:

答案 0 :(得分:0)

将这两个属性添加到布局中的小睡片段中。

android:layout_alignTop="@+id/buttons" android:layout_alignBottom="@+id/buttons"

答案 1 :(得分:0)

您的代码似乎有点偏差。在线性布局中捕获您尝试做的事情变得更加困难。 ImageView将是你的片段。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MyActivity$PlaceholderFragment">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/ic_launcher"
    android:orientation="vertical">

    <!-- Address -->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Some Text"
        android:gravity="center"
        android:textSize="20dp"/>

    <!-- Map and Buttons -->
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:baselineAligned="false"
        android:layout_gravity="center"
        android:padding="5dp">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/buttons"
            android:orientation="vertical">


            <ImageButton
                android:layout_width="75dp"
                android:layout_height="75dp"
                android:id="@+id/random_image"
                android:src="@drawable/ic_launcher"
                />

            <ImageButton
                android:layout_width="75dp"
                android:layout_height="75dp"
                android:id="@+id/random_image2"
                android:layout_below="@id/random_image"
                android:src="@drawable/ic_launcher"/>

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_toRightOf="@id/random_image"
                android:layout_alignBottom="@id/random_image2"
                android:layout_marginBottom="5dp"
                android:layout_marginTop="5dp"
                android:background="#000000"/>


        </RelativeLayout>

    </RelativeLayout>

</LinearLayout>