gpt4 book ai didi

android - CollapsingToolbar 不适用于不太高的内容

转载 作者:IT老高 更新时间:2023-10-28 22:26:32 25 4
gpt4 key购买 nike

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

<CoordinatorLayout>

<AppBarLayout>
<CollapsingToolbarLayout>
<ImageView/>
<Toolbar/>
</CollapsingToolbarLayout>
</AppBarLayout>

<android.support.v4.widget.NestedScrollView/> <!-- content here -->

</CoordinatorLayout>

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

  • content.height > screen.height : 工作;上下滑动可展开和折叠工具栏,以及滚动内容;

  • content.height < screen.height : 没有。这不好,因为大多数时候(content.height + expandedToolbar.height) > screen.height !

换句话说,当内容不够高时,即使 content+expandedToolbar 比整个屏幕高很多,它也不会对滚动手势使用react并显示一些错误 - 可能需要十个手势可以稍微折叠工具栏。所以你几乎无法到达内容的底部,因为工具栏已展开,所以隐藏在底部。

有什么解决方法吗?

如果您想尝试,只需调用cheesesquare示例项目并删除(或减少)NestedScrollView 中的内容在activity_detail.xml [此处为API17]

最佳答案

诀窍是将 android:layout_gravity="fill_vertical" 添加到 NestedScrollView。这样,工具栏可以平滑地折叠和展开,并对任何非空 NestedScrollView 的滚动手势使用react,无论其大小。

当然,如果 ScrollView 为空,则工具栏不会通过滚动屏幕的“内容”部分来折叠。但这对我来说似乎并没有那么糟糕。

更新

看起来这个解决方案对于较大的内容存在一些问题,因为内容的最底部将保持隐藏状态。我可以发现隐藏部分(似乎)与折叠的工具栏高度一样大。这使得定义解决方法变得容易 - 只需在 ScrollView 的底部添加一个边距,以便它被测量并释放底部的隐藏部分。因此:

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

或您在 View 中为 Toolbar 指定的任何大小。请注意,此解决方案非常适合大小大小的内容,但对于较小的内容,滚动就不那么流畅了。

更新 2(2015 年 7 月)

从早期的测试来看,这个错误似乎已在支持设计库的 v22.2.1 版本中得到修复。

关于android - CollapsingToolbar 不适用于不太高的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30785550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com