工具栏位置随着分页

时间:2016-04-22 08:13:47

标签: android android-fragments android-viewpager android-toolbar android-maps-v2

在处理ViewPager时,我一直在处理有关CollapsingToolbarLayout,工具栏的问题。

问题是工具栏在第二页(仅限第二页)中的位置不正确。然后在第三,第四......页面再次正确。很难彻底解释所以我包括图像。第一个图像显示第一页,它应该是什么样子。第二个图像显示滑动到第二个图像时的两个页面 - 注意主页按钮。 The first page - which is correct

The second page and the first one together, notice the back button

我尝试用ImageView替换地图,我得到了相同的结果。

活动/片段结构是这样的: ItemActivity - > ItemPagerFragment - > ItemDetailsFragment

工具栏在片段中设置,而不是活动,布局结构如下:

<android.support.design.widget.CoordinatorLayout
android:id="@+id/cl_root"
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:fitsSystemWindows="true">

<android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fitsSystemWindows="true"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

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


        <com.google.android.gms.maps.MapView
            android:id="@+id/map_view"
            android:layout_width="match_parent"
            android:layout_height="355dp"
            android:fitsSystemWindows="true"
            app:layout_collapseMode="parallax"
            app:mapType="satellite"/>

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

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

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

<android.support.v4.widget.SwipeRefreshLayout
    android:id="@+id/swipe_refresh_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:visibility="visible"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

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

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

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="@dimen/spacing_small"
    android:src="@drawable/icon_search_blank"
    app:layout_anchor="@id/app_bar_layout"
    app:layout_anchorGravity="bottom|right|end"/>

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

提前致谢!

更新

在NguyễnTrungHiếu的帮助下,我设法解决了这个问题。唯一需要的是删除 - android:fitsSystemWindows =&#34; true&#34; - 来自协调员布局。

1 个答案:

答案 0 :(得分:0)

删除

android:fitsSystemWindows="true"

at

android.support.design.widget.CoordinatorLayout

这是代码

<android.support.design.widget.CoordinatorLayout
android:id="@+id/cl_root"
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.support.design.widget.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

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


    <com.google.android.gms.maps.MapView
        android:id="@+id/map_view"
        android:layout_width="match_parent"
        android:layout_height="355dp"
        app:layout_collapseMode="parallax"
        app:mapType="satellite"/>

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        app:layout_collapseMode="pin"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

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

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

 <android.support.v4.widget.SwipeRefreshLayout
 android:id="@+id/swipe_refresh_layout"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:visibility="visible"
 app:layout_behavior="@string/appbar_scrolling_view_behavior">

 <android.support.v7.widget.RecyclerView
    android:id="@+id/recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

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

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

 <android.support.design.widget.FloatingActionButton
 android:id="@+id/fab"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_marginRight="@dimen/spacing_small"
 android:src="@drawable/icon_search_blank"
 app:layout_anchor="@id/app_bar_layout"
 app:layout_anchorGravity="bottom|right|end"/>

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