Android Map无法在CollapsingToolbarLayout中正确滚动

Nic*_*omb 2 android supportmapfragment android-coordinatorlayout

我在CollapsingToolbarLayout中有一个Google Map。尽管地图相机无法正常工作,但地图仍显示完美。

当您尝试滑动地图以移动到其他位置时,动画不流畅,并且通常不会注册滑动地图,因为CoordinatorLayout会覆盖地图。

这意味着当您尝试例如向上滑动地图时,地图不会滚动。而不是CoordinatorLayout滚动(NestedScrollView向上移动而不是Map更改位置)。

有谁知道如何解决这个问题?

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/background_light"
    android:fitsSystemWindows="true"
    android:id="@+id/coordlayout"
    >

    <android.support.design.widget.AppBarLayout
        android:id="@+id/main.appbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="80dp"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        android:fitsSystemWindows="true"
        >

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:titleEnabled="true"
            app:expandedTitleMarginStart="48dp"
            app:expandedTitleMarginEnd="64dp"
            >


            <fragment xmlns:android="http://schemas.android.com/apk/res/android"
                android:name="com.google.android.gms.maps.SupportMapFragment"
                android:id="@+id/map"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_collapseMode="parallax"
                app:layout_scrollFlags="scroll|enterAlways"
                android:fitsSystemWindows="true"/> 

        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:padding="20dp"
        android:background="@color/colorPrimary">

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/linearLayout"> 
        </LinearLayout>

    </android.support.v4.widget.NestedScrollView>



 <android.support.design.widget.FloatingActionButton
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_margin="@dimen/activity_horizontal_margin"
        android:src="@drawable/dots"
        app:backgroundTint="#4fcd1e"
        app:layout_anchor="@id/main.appbar"
        app:layout_anchorGravity="bottom|right|end"
        android:id="@+id/fab" />
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

Arp*_*pit 6

来不及回复。只需在您的活动onCreate()方法中添加以下代码即可。

CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) appbar.getLayoutParams();
    AppBarLayout.Behavior behavior = new AppBarLayout.Behavior();
    behavior.setDragCallback(new AppBarLayout.Behavior.DragCallback() {
        @Override
        public boolean canDrag(AppBarLayout appBarLayout) {
            return false;
        }
    });
    params.setBehavior(behavior);
Run Code Online (Sandbox Code Playgroud)

地图滚动将变得正确。