CollapsingToolbarLayout ImageView不可滚动

roy*_*oyB 7 android android-scrollview android-support-library android-design-library android-collapsingtoolbarlayout

使用cheesesquare - android支持库的例子是否可以使Header ImageView滚动?

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="@dimen/detail_backdrop_height"
    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:expandedTitleMarginStart="48dp"
        app:expandedTitleMarginEnd="64dp">

        <ImageView
            android:id="@+id/backdrop"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            android:fitsSystemWindows="true"
            app:layout_scrollFlags="scroll" 
            app:layout_collapseMode="parallax" />
            ...
    </android.support.design.widget.CollapsingToolbarLayout>

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">
    ....
Run Code Online (Sandbox Code Playgroud)

请注意,我已添加添加android:fillViewport="true"NestedScrollView添加 app:layout_scrollFlags="scroll"ImageView但是当尝试滚动时ImageView没有任何反应.

Chr*_*ski 4

好的,我在错误报告中做了一些研究,这是Design Support Library.

在这里查看错误报告

摘抄

我查看了支持类等的实现。 //CoordinatorLayout使用AppBarLayout默认Behavior定义AppBarLayout的行为AppBarLayout.Behavior。这延伸ViewOffsetBehavior又延伸Behavior。基类Behavior具有方法onInterceptTouchEvent()onTouchEvent(),这两个方法都返回 false(意思是“我们不想处理触摸事件”)。这些方法不会被ViewOffsetBehavior或覆盖AppBarLayout.Behavior,这意味着触摸未被处理 - 这就是它不执行任何操作的原因。

第三方开发人员可能的解决方法是相应地扩展AppBarLayout.Behavior、实现onInterceptTouchEvent()onTouchEvent()操作应用程序栏。

视频

这些显示了当前和预期的行为。这些也来自错误报告。