CollapsingToolbar不能处理不那么高的内容

我很确定这是一个错误,所以我要求一个解决方法。 我的布局是这样的:

<CoordinatorLayout> <AppBarLayout> <CollapsingToolbarLayout> <ImageView/> <Toolbar/> </CollapsingToolbarLayout> </AppBarLayout> <android.support.v4.widget.NestedScrollView/> <!-- content here --> </CoordinatorLayout> 

我从网上检索内容,我不知道它会有多高 – 可能只有几行,可能会很长。 但是,我发现当内容不足以覆盖整个屏幕时, CollapsingToolbar不能正常工作。 案例:

换句话说,当内容不够高时, 即使内容+ expandedToolbar比整个屏幕高很多 ,它也不会对滚动手势做出反应并显示一些错误 – 可能需要十个手势才能将工具栏折叠一点。 所以你很难到达隐藏在底部的内容的底部,因为工具栏被展开了。

任何解决方法?

如果你想尝试,只需要cheesesquare示例项目,并删除(或减less)在activity_detail.xml [API17这里]的NestedScrollView内的内容,

Solutions Collecting From Web of "CollapsingToolbar不能处理不那么高的内容"

诀窍是将android:layout_gravity="fill_vertical"NestedScrollView 。 通过这种方式,工具栏可以平滑地展开和展开,并对任何非空的NestedScrollView进行滚动手势,无论其大小如何。

当然,如果滚动视图是空的,工具栏不会通过在屏幕的“内容”部分滚动来折叠。 但是,这对我来说似乎并不坏。

更新

看起来这个解决scheme有一些内容较大的问题,因为内容的底部将保持隐藏。 我可以发现隐藏的部分(看起来像)被折叠的工具栏高度一样大。 这样可以很容易地定义一个解决方法 – 只需在ScrollView的底部添加一个边距,以便测量并释放底部的隐藏部分。 从而:

 android:layout_gravity="fill_vertical" android:layout_marginBottom="?attr/actionBarSize" 

或者您在视图中提供给Toolbar大小。 请注意,这个解决scheme适合大小不一的内容,但对于较小的内容,滚动并不那么顺畅。

Update2(2015年7月)

从早期的testing来看,这个bug已经在支持devise库的v22.2.1版本中解决了。