当前位置:  开发笔记 > 编程语言 > 正文

使用自定义行为为CollapsingToolbar创建多个"锚点"/位置

如何解决《使用自定义行为为CollapsingToolbar创建多个"锚点"/位置》经验,为你挑选了2个好方法。

我正在尝试使用与搜索着陆页中的Google地图应用类似的折叠工具栏.也就是说,有三个"锚点"或位置.代替地图,我会有一张照片.

工具栏已折叠(内容为全屏)

全屏

中间位置

中途

工具栏扩展,只显示一些内容(持久性底部工作表)

一路开放

优选地,app应该在这些位置之间捕捉.

截至目前,我的布局基本上正常.

两个主要问题是:

在NestedScrollView内部进行操作无法正常工作.它停止/砍,即使它正在使用app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior".我相信这是一个错误AppBarLayout

上述锚点未实现.

这是我的布局:

请注意,这app:layout_behavior="@string/appbar_anchor_behavior">只是一个未经修改的子类AppBarLayout.Behavior






    

        

        

    






    





如何使用自定义行为实现此目的?



1> TR4Android..:

根据您想要实现的目标,您可能想尝试SlidingUpPanelLayout(可以在Github上找到).它拥有您似乎需要的一切:

锚点:为了实现你描述的锚点,你必须设置umanoAnchorPoint属性(基于百分比),或者 - 如果你需要更复杂的锚点计算,例如取决于ImageView高度 - 使用setAnchorPoint方法.

持久性:与上面提到的BottomSheets不同,这种布局实际上是持久的.折叠时面板的高度可以使用umanoPanelHeight属性或setPanelHeight方法自定义.

视差:不确定实现是否符合您的需求,如果您需要它,但它确实具有基本的视差支持.

您可以在上面链接的Github自述文件中找到更多信息.



2> AndroidMecha..:

你在问题中提到的实际上并不是CollapsingToolbar一个可拉伸的东西BottomSheet.不幸的是,Android sdk还没有为我们提供任何东西(尽管谷歌已经在自己的应用程序中使用它们).

BottomSheet是一个Android组件,它从屏幕底部显示一个不允许的视图.BottomSheet可以是对话框和菜单的有用替代品,但可以保存任何视图,因此用例是无穷无尽的.此存储库包括BottomSheet组件本身,但还包括底部工作表中显示的一组公共视图组件.这些位于commons模块中.

另一方面,一些不错的家伙已经足够开发足够近的库并在GitHub上分享它们供我们使用.它们接近BottomSheetGoogle使用的组件.

与您想要的最匹配的是这个 - Flipbard/BottomSheet - 检查本页"Common Components"部分下的图像.(这一点的一个优点是Flipboard已经在生产中使用了一段时间,所以它经过了彻底的测试.)

这是另一个最小的BottomSheet库 - soarcn/BottomSheet,但它只允许可点击的图标.您可以获得源并根据您的需要进行自定义.但是,Flipboard中的第一个是更接近的匹配,因为它可以保存任何类型的视图,并且更加可定制.

按照以上两个GitHub链接中的每个链接查看示例,设置说明和源代码.

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有