web-dev-qa-db-ja.com

マップフラグメントAPI v2レイアウトの上部にボタンを追加する方法

API v2を使用してAndroidで地図を表示しようとしています。
UIには次のようなものが必要ですが、いつでも出力に反映されないレイアウトにボタンを追加しようとします
ボタンなしでマップを取得できます
以下のようにマップと統合するボタンが必要です
Mylayout.xmlのコード:

<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"
tools:context=".MapActivity" >
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="48dp">
<LinearLayout 
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal">
<RadioGroup 
Android:id="@+id/radio_group_list_selector"
Android:layout_width="0dp"
Android:layout_height="match_parent"
Android:layout_gravity="center_horizontal|center_vertical"
Android:gravity="center_horizontal"
Android:orientation="horizontal"
Android:layout_weight="1"

>
<RadioButton
Android:id="@+id/radioPopular"
Android:layout_width="0dp"
Android:layout_height="match_parent"
Android:gravity="center_horizontal|center_vertical"
Android:text="@string/Popular"
Android:layout_weight="1"
Android:button="@null"
Android:background="@drawable/shape_radiobutton"
Android:layout_marginBottom="4dp"
Android:layout_marginTop="4dp"
Android:layout_marginLeft="4dp"
Android:textColor="@drawable/textcolor_radiobutton"

/>
<View
Android:id="@+id/VerticalLine"
Android:layout_width="1dip"
Android:layout_height="wrap_content"
Android:layout_marginBottom="4dip"
Android:layout_marginTop="4dip"
Android:background="#aaa"
            />
<RadioButton
Android:id="@+id/radioAZ"
Android:layout_width="0dp"
Android:layout_height="match_parent"
Android:gravity="center_horizontal|center_vertical"
Android:text="@string/AZ"
Android:layout_weight="1"
Android:button="@null"
Android:background="@drawable/shape_radiobutton2"
Android:layout_marginBottom="4dp"
Android:layout_marginTop="4dp"
Android:textColor="@drawable/textcolor_radiobutton"

/>
 <View
Android:id="@+id/VerticalLine"
Android:layout_width="1dip"
Android:layout_height="wrap_content"
Android:layout_marginBottom="4dip"
Android:layout_marginTop="4dip"
Android:background="#aaa"
            />
<RadioButton
Android:id="@+id/radioCategory"
Android:layout_width="0dp"
Android:layout_height="match_parent"
Android:gravity="center_horizontal|center_vertical"
Android:text="@string/Category"
Android:layout_weight="1"
Android:button="@null"
Android:background="@drawable/shape_radiobutton2"
Android:layout_marginBottom="4dp"
Android:layout_marginTop="4dp"
Android:textColor="@drawable/textcolor_radiobutton"

/>
<View
Android:id="@+id/VerticalLine"
Android:layout_width="1dip"
Android:layout_height="wrap_content"
Android:layout_marginBottom="4dip"
Android:layout_marginTop="4dip"
Android:background="#aaa"
/>

<RadioButton
Android:id="@+id/radioNearBy"
Android:layout_width="0dp"
Android:layout_height="match_parent"
Android:gravity="center_horizontal|center_vertical"
Android:text="@string/NearBy"
Android:layout_weight="1"
Android:button="@null"
Android:background="@drawable/shape_radiobutton3"
Android:layout_marginBottom="4dp"
Android:layout_marginTop="4dp"
Android:layout_marginRight="4dp"
Android:textColor="@drawable/textcolor_radiobutton"
/>

</RadioGroup>

</LinearLayout>
<!-- For Horizontal Line-->
<View
Android:layout_width="match_parent"
Android:layout_height="1dip"
Android:layout_marginLeft="4dip"
Android:layout_marginRight="4dip"
Android:background="#aaa"
Android:layout_alignParentBottom="true"/>
</RelativeLayout>
<fragment xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:map="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/map"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:scrollbars="vertical"  
class="com.google.Android.gms.maps.SupportMapFragment"/>
</RelativeLayout>

Maps with Button

62
sandeep_jagtap

おそらくより簡単な解決策は、FrameLayoutまたはRelativeLayoutを使用してマップの前にオーバーレイを設定し、アクティビティの通常のボタンとして扱うことです。ボタンをマップする前に、前から後ろの順にレイヤーを宣言する必要があります。レイアウトを変更し、少し簡略化しました。以下のレイアウトを試して、それがあなたのために働くかどうか確かめてください:

<FrameLayout 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"
    tools:context=".MapActivity" >

    <fragment xmlns:map="http://schemas.Android.com/apk/res-auto"
        Android:id="@+id/map"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:layout_weight="1"
        Android:scrollbars="vertical"  
        class="com.google.Android.gms.maps.SupportMapFragment"/>

    <RadioGroup 
        Android:id="@+id/radio_group_list_selector"
        Android:layout_width="match_parent"
        Android:layout_height="48dp"
        Android:orientation="horizontal" 
        Android:background="#80000000"
        Android:padding="4dp" >

        <RadioButton
            Android:id="@+id/radioPopular"
            Android:layout_width="0dp"
            Android:layout_height="match_parent"
            Android:text="@string/Popular"
            Android:gravity="center_horizontal|center_vertical"
            Android:layout_weight="1"
            Android:background="@drawable/shape_radiobutton"
            Android:textColor="@color/textcolor_radiobutton" />
        <View
            Android:id="@+id/VerticalLine"
            Android:layout_width="1dip"
            Android:layout_height="match_parent"
            Android:background="#aaa" />

        <RadioButton
            Android:id="@+id/radioAZ"
            Android:layout_width="0dp"
            Android:layout_height="match_parent"
            Android:gravity="center_horizontal|center_vertical"
            Android:text="@string/AZ"
            Android:layout_weight="1"
            Android:background="@drawable/shape_radiobutton2"
            Android:textColor="@color/textcolor_radiobutton" />

        <View
            Android:id="@+id/VerticalLine"
            Android:layout_width="1dip"
            Android:layout_height="match_parent"
            Android:background="#aaa" />

        <RadioButton
            Android:id="@+id/radioCategory"
            Android:layout_width="0dp"
            Android:layout_height="match_parent"
            Android:gravity="center_horizontal|center_vertical"
            Android:text="@string/Category"
            Android:layout_weight="1"
            Android:background="@drawable/shape_radiobutton2"
            Android:textColor="@color/textcolor_radiobutton" />
        <View
            Android:id="@+id/VerticalLine"
            Android:layout_width="1dip"
            Android:layout_height="match_parent"
            Android:background="#aaa" />

        <RadioButton
            Android:id="@+id/radioNearBy"
            Android:layout_width="0dp"
            Android:layout_height="match_parent"
            Android:gravity="center_horizontal|center_vertical"
            Android:text="@string/NearBy"
            Android:layout_weight="1"
            Android:background="@drawable/shape_radiobutton3"
            Android:textColor="@color/textcolor_radiobutton" />
    </RadioGroup>
</FrameLayout>
93

Button Above The Map

これがあなたが望むものである場合...単にフラグメント内にボタンを追加します。

<fragment xmlns:Android="http://schemas.Android.com/apk/res/Android"
    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="com.example.LocationChooser">


    <Button
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_gravity="right|top"
        Android:text="Demo Button" 
        Android:padding="10dp"
        Android:layout_marginTop="20dp"
        Android:paddingRight="10dp"/>

</fragment>
53
katwal-Dipak

de Almeidaの答えを拡張しますここでコードを少し編集しています。以前のコードはGPSロケーションアイコンを隠していたので、私は次の方法でうまくいきました。

 <LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:orientation="vertical"

>

<RadioGroup 
    Android:id="@+id/radio_group_list_selector"
    Android:layout_width="match_parent"
    Android:layout_height="48dp"
    Android:orientation="horizontal" 
    Android:background="#80000000"
    Android:padding="4dp" >

    <RadioButton
        Android:id="@+id/radioPopular"
        Android:layout_width="0dp"
        Android:layout_height="match_parent"
        Android:text="@string/Popular"
        Android:gravity="center_horizontal|center_vertical"
        Android:layout_weight="1"
        Android:button="@null"
        Android:background="@drawable/shape_radiobutton"
        Android:textColor="@drawable/textcolor_radiobutton" />
    <View
        Android:id="@+id/VerticalLine"
        Android:layout_width="1dip"
        Android:layout_height="match_parent"
        Android:background="#aaa" />

    <RadioButton
        Android:id="@+id/radioAZ"
        Android:layout_width="0dp"
        Android:layout_height="match_parent"
        Android:gravity="center_horizontal|center_vertical"
        Android:text="@string/AZ"
        Android:layout_weight="1"
        Android:button="@null"
        Android:background="@drawable/shape_radiobutton2"
        Android:textColor="@drawable/textcolor_radiobutton" />

    <View
        Android:id="@+id/VerticalLine"
        Android:layout_width="1dip"
        Android:layout_height="match_parent"
        Android:background="#aaa" />

    <RadioButton
        Android:id="@+id/radioCategory"
        Android:layout_width="0dp"
        Android:layout_height="match_parent"
        Android:gravity="center_horizontal|center_vertical"
        Android:text="@string/Category"
        Android:layout_weight="1"
        Android:button="@null"
        Android:background="@drawable/shape_radiobutton2"
        Android:textColor="@drawable/textcolor_radiobutton" />
    <View
        Android:id="@+id/VerticalLine"
        Android:layout_width="1dip"
        Android:layout_height="match_parent"
        Android:background="#aaa" />

    <RadioButton
        Android:id="@+id/radioNearBy"
        Android:layout_width="0dp"
        Android:layout_height="match_parent"
        Android:gravity="center_horizontal|center_vertical"
        Android:text="@string/NearBy"
        Android:layout_weight="1"
        Android:button="@null"
        Android:background="@drawable/shape_radiobutton3"
        Android:textColor="@drawable/textcolor_radiobutton" />
</RadioGroup>

<fragment
    xmlns:map="http://schemas.Android.com/apk/res-auto"
    Android:id="@+id/map"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    class="com.google.Android.gms.maps.SupportMapFragment"
    Android:scrollbars="vertical" />
3
sandeep_jagtap

以下のコードを使用して、ボタンを左側に変更できます。

<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="com.zakasoft.mymap.MapsActivity" >

    <Button
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_gravity="left|top"
        Android:text="Send"
        Android:padding="10dp"
        Android:layout_marginTop="20dp"
        Android:paddingRight="10dp"/>

</fragment>