在谷歌地图api for android上相对于彼此添加2个按钮

时间:2017-10-02 10:08:18

标签: android google-maps android-layout

我想在我的Android地图应用中添加2个按钮。它们应该位于地图前面的左上角,就像谷歌地图本身的“找到你的位置”按钮一样。

在我的activity_maps.xml中,我有:

<Button
    android:id="@+id/start_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="start|top"
    android:text="@string/start_button_text"
    android:padding="10dp"
    android:layout_marginTop="9dp"
    android:layout_marginLeft="10dp"
    android:paddingRight="10dp"
    android:onClick="start_button_clicked"
    />

<Button
    android:id="@+id/vorschlag_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/start_button"
    android:text="@string/vorschlag_button_text"
    android:padding="10dp"
    android:layout_marginTop="9dp"
    android:layout_marginLeft="10dp"
    android:paddingRight="10dp"
    android:onClick="vorschlag_button_clicked"
    />

我的问题是第二个按钮(@ + id / vorschlag_button)显示在第一个按钮(@ + id / start_button)的顶部而不是开始按钮的右侧。

还有办法将我的按钮与Google Maps API的“my_position_button”对齐吗?

我也想拥有与“my_position_button”相同的背景色。

我收到

上的错误消息
android:layout_toRightOf="@+id/start_button"

“片段中的布局参数无效。”

感谢您对此的帮助。

P.S。:因为它不是那么多:我的整个activity_maps.xml:

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

<Button
    android:id="@+id/start_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="start|top"
    android:text="@string/start_button_text"
    android:padding="10dp"
    android:layout_marginTop="9dp"
    android:layout_marginLeft="10dp"
    android:paddingRight="10dp"
    android:onClick="start_button_clicked"
    />
<Button
    android:id="@+id/vorschlag_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/start_button"
    android:text="@string/vorschlag_button_text"
    android:padding="10dp"
    android:layout_marginTop="9dp"
    android:layout_marginLeft="10dp"
    android:paddingRight="10dp"
    android:onClick="vorschlag_button_clicked"
    />

</fragment>

2 个答案:

答案 0 :(得分:0)

您可以尝试以下代码;

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

        <fragment xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:map="http://schemas.android.com/apk/res-auto"
            xmlns:tools="http://schemas.android.com/tools"
            android:id="@+id/map"
            android:name="com.google.android.gms.maps.SupportMapFragment"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1.7"
            tools:context="com.user.newdemonearbyplace.MapsActivity" />

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="0.3"
            android:layout_gravity="bottom"
            android:gravity="center">

           <Button
            android:id="@+id/start_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="start|top"
            android:text="@string/start_button_text"
            android:padding="10dp"
            android:layout_marginTop="9dp"
            android:layout_marginLeft="10dp"
            android:paddingRight="10dp"
            android:onClick="start_button_clicked"
            />
           <Button
            android:id="@+id/vorschlag_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/start_button"
            android:text="@string/vorschlag_button_text"
            android:padding="10dp"
            android:layout_marginTop="9dp"
            android:layout_marginLeft="10dp"
            android:paddingRight="10dp"
            android:onClick="vorschlag_button_clicked"/>

        </RelativeLayout>
    </LinearLayout>

答案 1 :(得分:0)

使用相对布局,它将解决您的问题。在此代码中,如果您想要按下按钮而不是将android:layout_alignParentBottom="true" 添加到两个按钮。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

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

    <Button
        android:id="@+id/start_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="start|top"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="9dp"
        android:onClick="start_button_clicked"
        android:padding="10dp"
        android:paddingRight="10dp"
        android:text="start_button_text" />

    <Button
        android:id="@+id/vorschlag_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="9dp"
        android:layout_toRightOf="@+id/start_button"
        android:onClick="vorschlag_button_clicked"
        android:padding="10dp"
        android:paddingRight="10dp"
        android:text="vorschlag_button_text" />

</RelativeLayout>