无法显示我的位置和位置按钮

时间:2016-05-02 15:11:58

标签: android android-layout android-fragments android-studio material-design

在我制作抽屉菜单和浮动按钮之后为什么我的地图无法显示我的位置和位置按钮,为什么搜索位置按钮在点击时会强制停止? 在我添加抽屉菜单和浮动按钮之前,一切都没问题。
之前 [pict]BEFORE
[pict]AFTER

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context="com.emergency.MainActivity"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/drawerLayout">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fitsSystemWindows="true">
            <android.support.v7.widget.Toolbar
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:id="@+id/toolbar">
            </android.support.v7.widget.Toolbar>
        </android.support.design.widget.AppBarLayout>
        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:fab="http://schemas.android.com/apk/res-auto"
            android:background="@color/background"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <include layout="@layout/activity_maps"/>

            <com.getbase.floatingactionbutton.FloatingActionsMenu
                android:id="@+id/multiple_actions"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentRight="true"
                android:layout_alignParentEnd="true"
                fab:fab_addButtonColorNormal="@color/white"
                fab:fab_addButtonColorPressed="@color/white_pressed"
                fab:fab_addButtonPlusIconColor="@color/half_black"
                fab:fab_labelStyle="@style/menu_labels_style"
                android:layout_marginBottom="50dp"
                android:layout_marginRight="16dp"
                android:layout_marginEnd="16dp">

                <com.getbase.floatingactionbutton.FloatingActionButton
                    android:id="@+id/action_a"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    fab:fab_colorNormal="@color/white"
                    fab:fab_title="Tambal Ban"
                    fab:fab_colorPressed="@color/white_pressed"
                    fab:fab_size="mini"/>
                <com.getbase.floatingactionbutton.FloatingActionButton
                    android:id="@+id/action_b"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    fab:fab_colorNormal="@color/white"
                    fab:fab_title="ATM"
                    fab:fab_colorPressed="@color/white_pressed"
                    fab:fab_size="mini"/>
                <com.getbase.floatingactionbutton.FloatingActionButton
                    android:id="@+id/action_c"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    fab:fab_colorNormal="@color/white"
                    fab:fab_title="WC Umum"
                    fab:fab_colorPressed="@color/white_pressed"
                    fab:fab_size="mini"/>

            </com.getbase.floatingactionbutton.FloatingActionsMenu>

        </RelativeLayout>
    </LinearLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/navigationView"
        android:layout_width="280dp"
        android:layout_height="match_parent"
        app:headerLayout="@layout/header_menu"
        app:menu="@menu/menu_navigasi"
        android:layout_gravity="start">
        <!--perintah buat nampilin menu utama kemudian bisa di slide yang ada menu adalah yang layout_gravity-->


    </android.support.design.widget.NavigationView >
</android.support.v4.widget.DrawerLayout>

activity_maps.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">

    <LinearLayout
        android:id="@+id/header_tempat"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        tools:context="com.emergency.MapsActivity" />
    </LinearLayout>
    <Button
        android:id="@+id/Bsearch"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ff4081"
        android:src="@android:drawable/ic_dialog_map"
        android:text="Search Place"
        android:textColor="#fff"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:onClick="onSearch"
        />

</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

出于某种原因,SupportMapFragment放置在<DrawerLayout>内时({ - 作为根视图)不会显示我的位置按钮(或指南针图标),但有一个解决方案:

将整个<DrawerLayout>放入<RelativeLayout>并删除<include>,然后将整个activity_maps.xml放入activity_main。另外为了让它看起来更好,我建议移动activity_maps.xml并从中创建一个片段,然后代替<include>,你会有:

<fragment
    android:id="@+id/map_fragment"
    class="com.yourpackage.MapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

您将只为片段中的地图分隔逻辑,这是活动中的所有活动内容。我们都知道,MainActivity随着时间的推移会逐渐增长,原因有很多;)