使用cheesesquare - android support library example是否可以使标题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">
....
注意我已添加android:fillViewport="true"
添加到NestedScrollView
,并添加 app:layout_scrollFlags="scroll"
ImageView
但是当试图从ImageView
滚动时没有任何反应。
答案 0 :(得分:4)
好的,我在错误报告中做了一些研究,这是Design Support Library
中的一个已知错误。
我已经看了支持
CoordinatorLayout
/AppBarLayout
/Behavior
类等的实现。AppBarLayout
使用AppBarLayout.Behavior
中定义的行为默认情况下。这扩展了ViewOffsetBehavior
,后者又扩展了Behavior
。基础Behavior
类具有方法onInterceptTouchEvent()
和onTouchEvent()
,两者都返回false(表示“我们不想处理触摸事件”)。这些方法不会被ViewOffsetBehavior
或AppBarLayout.Behavior
覆盖,这意味着触摸未处理 - 这就是它什么都不做的原因。第三方开发人员可能的解决方法是扩展
AppBarLayout.Behavior
并实施onInterceptTouchEvent()
和onTouchEvent()
并相应地操纵应用栏。
这些显示了当前和预期的行为。这些也来自错误报告。
答案 1 :(得分:2)
我通过在nestedScrollView中嵌入imageView找到了一种解决方法:
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:id="@+id/appbar"
android:background="@color/transparent"
android:layout_width="match_parent">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/transparent"
app:toolbarId="@+id/toolbar"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_collapseMode="parallax"
app:layout_scrollFlags="scroll"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<ImageView
tools:ignore="UnusedAttribute"
tools:src="@drawable/placeholder"
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:minHeight="200dp"/>
</android.support.v4.widget.NestedScrollView>
<android.support.v7.widget.Toolbar
android:layout_height="?attr/actionBarSize"
android:id="@+id/toolbar"
android:elevation="0dp"
android:layout_width="match_parent"
app:layout_collapseMode="pin"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
但是我还没有在prod中测试它,因为我遇到了另一个问题,当回收者视图到达顶部时,顶部手势突然中断(如错误报告中所述)。
答案 2 :(得分:0)
通过对支持库23.1.1的测试,这个问题似乎已得到解决。
compile 'com.android.support:design:23.1.1'
您现在可以将任何内容放入您的CollapsingToolbarLayout,ImageView,RelativeLayout,TextView,它将按预期滚动。