问题
after i make drawer menu and floating button why my maps can't get my location and location button not show, and why the search place button when it clicked so that force stop?
before i add drawer menu and floating button, it's all okay..
Before
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:
For some reason SupportMapFragment does not show my location button (or compass icon) when its placed inside <DrawerLayout> (<- as a root view), but there is a solution:
Put the whole <DrawerLayout> in <RelativeLayout> and remove <include> and just put whole activity_maps.xml in activity_main. Also to make it look better I would recommend moving activity_maps.xml and make a fragment from it, and then instead of <include> you would have:
<fragment
android:id="@+id/map_fragment"
class="com.yourpackage.MapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
You will have separated logic only for map in the fragment, an all activity stuff in activity. And we all know that MainActivity tends to grow over time for many reasons ;)
来源:https://stackoverflow.com/questions/36985787/cant-get-my-location-and-location-button-not-show