返回

仿写豆瓣详情页(五)联动和其他细节

Android


前面几篇文章主要讲了几个为了仿写豆瓣详情页而自定义的 View,底部浮层 BottomSheetLayout、内容列表联动滚动的 LinkedScrollView 和弹性布局 JellyLayout,有了这些基本就可以实现详情页的效果,本文简单介绍一下我在具体实现的时候是怎么组…

正文

前面几篇文章主要讲了几个为了仿写豆瓣详情页而自定义的 View,底部浮层 BottomSheetLayout、内容列表联动滚动的 LinkedScrollView 和弹性布局 JellyLayout,有了这些基本就可以实现详情页的效果,本文简单介绍一下我在具体实现的时候是怎么组装这些 View 的,以及其他一些细节。

1. 浮层与标题栏的联动

浮层与标题栏的联动主要通过 BottomSheetBehavior 来实现,BottomSheetBehavior 是一个可以控制浮层状态的 Behavior,它可以让我们很方便地控制浮层的状态,比如展开、收起、隐藏等。

在使用 BottomSheetBehavior 时,需要先将 BottomSheetLayout 的 behavior 属性设置为一个 BottomSheetBehavior 实例,然后就可以通过 BottomSheetBehavior 来控制浮层的状态了。

BottomSheetBehavior behavior = BottomSheetBehavior.from(bottomSheetLayout);

2. 内容列表的联动滚动

内容列表的联动滚动主要通过 LinkedScrollView 来实现,LinkedScrollView 是一个可以将多个 ScrollView 链接在一起的 ViewGroup,它可以让我们很方便地实现多个 ScrollView 的联动滚动。

在使用 LinkedScrollView 时,需要先将多个 ScrollView 的 parent 属性设置为 LinkedScrollView,然后就可以通过 LinkedScrollView 来控制多个 ScrollView 的联动滚动。

LinkedScrollView linkedScrollView = new LinkedScrollView(this);

3. 弹性布局

弹性布局主要通过 JellyLayout 来实现,JellyLayout 是一个可以实现弹性布局的 ViewGroup,它可以让我们很方便地实现弹性布局的效果。

在使用 JellyLayout 时,需要先将需要实现弹性布局的 View 的 parent 属性设置为 JellyLayout,然后就可以通过 JellyLayout 来控制弹性布局的效果。

JellyLayout jellyLayout = new JellyLayout(this);

4. 其他细节

除了上面提到的这些细节外,在仿写豆瓣详情页时还有很多其他细节需要注意,比如:

  • 如何处理浮层与标题栏的联动
  • 如何实现内容列表的联动滚动
  • 如何实现弹性布局
  • 如何处理浮层与标题栏的联动
  • 如何实现内容列表的联动滚动
  • 如何实现弹性布局

这些细节虽然看起来很小,但却是实现仿写豆瓣详情页的关键,在实际开发中,需要根据具体情况来处理。