在Ice Cream Sandwich API 15上使用AppBarLayout的意外工具栏行为

时间:2016-06-09 13:13:03

标签: android android-coordinatorlayout android-design-library android-appbarlayout

这是我的主要布局

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/main_content"
    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="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:elevation="4dp">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="?attr/colorPrimary"
            app:titleTextAppearance="@style/ToolbarTitle"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            app:layout_scrollFlags="scroll|enterAlways|snap"/>

        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            style="@style/CustomTabLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:tabMode="scrollable"
            app:layout_scrollFlags="enterAlways"/>

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

    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" >

    </FrameLayout>

    <fr.castorflex.android.circularprogressbar.CircularProgressBar
        android:id="@+id/base_progressSpinner"
        android:layout_gravity="center"
        android:layout_width="72dp"
        android:layout_height="72dp"
        android:indeterminate="true"
        android:visibility="invisible"
        app:cpb_color="@color/spinner"
        app:cpb_rotation_speed="1.0"
        app:cpb_sweep_speed="1.0"
        app:cpb_stroke_width="4dp"
        app:cpb_min_sweep_angle="10"
        app:cpb_max_sweep_angle="300"/>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab_request"
        android:visibility="gone"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_gravity="bottom|end"
        android:src="@drawable/request_fab_icon"
        android:layout_margin="@dimen/big_padding"
        android:clickable="true"
        app:backgroundTint="@color/fab"
        app:layout_anchorGravity="bottom|right|end"
        app:layout_behavior="source.bigdx.com.bigdxsource.util.ScrollAwareFABBehavior"/>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab_contact"
        android:visibility="gone"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_gravity="end|bottom"
        app:borderWidth="0dp"
        android:src="@drawable/contact_fab_icon"
        android:layout_margin="@dimen/big_padding"
        android:clickable="true"
        app:backgroundTint="@color/fab"/>

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

在API 16及更高版本上没有问题。当滚动内容时,工具栏会向上移动,直到崩溃为止。

然而,在API 14/15滚动时,内容不会滚动,只会滚动工具栏。折叠工具栏时,内容会滚动但不会与工具栏所在的位置重叠。

我已尝试更改上面布局中的样式和值等许多内容,但无法使其像在API 16+设备上那样工作。

更新

似乎将它包装在CollapsingToolbarLayout中修复了它,但不应该需要它。

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

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        app:titleTextAppearance="@style/ToolbarTitle"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

    <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        style="@style/CustomTabLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabMode="scrollable"
        app:layout_scrollFlags="enterAlways"/>

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

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

1 个答案:

答案 0 :(得分:1)

这是ICS中CoordinatorLayout的问题。尝试使用不同的布局,工具栏将显示