如何在Collapsingtoolbarlayout中正确使用地图片段

时间:2015-10-30 07:27:37

标签: android google-maps android-coordinatorlayout

当我在CoordinatorLayout中向上/向下滑动地图视图时,此地图也将展开/折叠。
我希望地图可以上/下或其他移动事件来查看其他地方。就在mapview中
这该怎么做。提前谢谢。

    <android.support.v4.widget.DrawerLayout  xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/drawerLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.design.widget.CoordinatorLayout
            android:id="@+id/rootLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent">


            <android.support.design.widget.AppBarLayout
                android:id="@+id/appbar"
                android:layout_width="match_parent"
                android:layout_height="216dp"
                >

                <android.support.design.widget.CollapsingToolbarLayout
                    android:id="@+id/collapsingToolbarLayout"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    app:contentScrim="?attr/colorPrimary"
                    app:expandedTitleMarginStart="40dp"
                    app:layout_scrollFlags="scroll|exitUntilCollapsed"><!---->

                    <fragment
                        android:id="@+id/map"
                        android:name="com.google.android.gms.maps.MapFragment"
                        android:layout_width="match_parent"
                        android:layout_height="222dp"
                        app:layout_collapseMode="pin"/>


                    <android.support.v7.widget.Toolbar
                        android:id="@+id/toolbar"
                        android:layout_width="match_parent"
                        android:layout_height="?attr/actionBarSize"
                        android:gravity="top"
                        android:minHeight="?attr/actionBarSize"
                        app:layout_collapseMode="pin"
                        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
                    <!--app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"-->

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


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

            <android.support.design.widget.TabLayout
                android:id="@+id/info_tabLayout"
                android:layout_width="match_parent"
                android:layout_height="40dp"
                android:layout_gravity="bottom"
                android:background="@android:color/white"
                app:layout_anchor="@+id/appbar"
                app:layout_anchorGravity="bottom"
                app:tabIndicatorColor="@android:color/background_dark" />

            <android.support.v4.view.ViewPager
                android:id="@+id/info_viewpager"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginTop="40dp"
                app:layout_behavior="@string/appbar_scrolling_view_behavior" />



        </android.support.design.widget.CoordinatorLayout>



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

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

2 个答案:

答案 0 :(得分:4)

我解决了这个问题。看这个AppBarLayout.Behavior.DragCallback 使用它到AppBarlayout,然后MapFragment将正常工作。

有关更详细的实施click here..

答案 1 :(得分:0)

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);