首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android ScrollView实现下拉弹回动画效果

这里设计一个自定义View,继承了ScrollView,实现可以下拉里面的内容,松手后画面弹回,这个自定义的View可以当做ScrollView来使用。 一般设计时的应用效果: ?...; /** * 实现了可以有下拉弹回的ScrollView的自定义View */ public class SpringScrollView extends ScrollView { private View...当滚动到最上或者最下时就不会再滚动,这时移动布局 if (isNeedMove()) { if (normal.isEmpty()) { // 填充矩形,目的:就是告诉this:我现在已经有了,你松开的时候记得要执行回归动画...deltaY / 2, inner.getRight(), inner.getBottom() - deltaY / 2); } break; default: break; } } /*** * 开启动画移动...*/ public void animation() { // 开启移动动画 TranslateAnimation ta = new TranslateAnimation(0, 0, inner.getTop

1K31
您找到你想要的搜索结果了吗?
是的
没有找到

实现一个带下拉弹簧动画ScrollView

在刚推出的 Support Library 25.3.0 里面新增了一个叫 SpringAnimation 的动画,也就是弹簧动画。要是用它来做一个滑动控件下拉回弹的效果,应该不错吧。...再调用 springAnim.start() 就可以开始动画啦。...当 ScrollView 在顶部时,记录下手指所在的 y 轴位置。在顶部并且是往下滑动的时候,给 ScrollView 设置一个纵向的偏移。之所以除以 3,是为了让控件有种要用力才能拖动的感觉。...在顶部的时候如果是往上滑动,则把动画效果取消,把控件位置复原,否则可能出现控件一直偏移的情况。 最后当手指抬起时,执行弹簧动画就好了。...由于ScrollView只有一个子布局,所以可以通过 getScrollY() + getHeight()) >= getChildAt(0).getMeasuredHeight() 复制代码 判断是否滑动到了底部

1.2K80

在 SwiftUI 下定制手势

•拖拽(DragGesture)SwiftUI 将 Pan 和 Swipe 合二为一,位置变化时,提供拖动数据。•缩放(MagnificationGesture)两指缩放。...updating 方法中修改,在视图其它的地方为只读•在手势结束时,与之关联(使用 updating 进行关联)的手势会自动将其内容恢复到它的初始值•通过 resetTransaction 可以设置恢复初始数据时的动画状态...1.2 思路 在 SwiftUI 预置手势中,仅有 DragGesture 提供了可用于判断移动方向的数据。根据偏移量来确定轻扫方向,使用 map 将繁杂的数据转换成简单的方向数据。...如果想实现严格意义上的轻扫可以采用如下的实现方法: •改成示例 2 的方式,用 ViewModifier 来包装 DragGesture•用 State 记录滑动时间•在 onEnded 中,只有满足速度...public func body(content: Content) -> some View { content .gesture( DragGesture

2.6K20

iOS开发UIScrollView使用详解 原

decelerationRate; 设置滑动速度 - (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated; 设置滚动视图内容的偏移量,可以带动画效果...- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated; 设置滚动视图滚动到某个可见区域,可以带动画效果 - (void)flashScrollIndicators...nonatomic) CGFloat zoomScale; 设置缩放比例 - (void)setZoomScale:(CGFloat)scale animated:(BOOL)animated; 设置缩放比例,可以带动画效果...- (void)zoomToRect:(CGRect)rect animated:(BOOL)animated; 设置缩放显示到某个区域,可以带动画效果 @property(nonatomic) BOOL...)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView; 视图动画结束时触发的方法,使用set方法设置偏移量后回触发 - (UIView

1.6K30

UIScrollView 和 UIPageControl 实现启动滑动图

contentSize : UIScrollView 显示的尺寸,这个按需求而设 pagingEnabled : 是否支持一页一页的翻,设置成YES后,每一次滑动,翻动一页; bounces:是否支持反弹,这是一个动画效果...= NO; _scrollView.showsHorizontalScrollIndicator = NO; _scrollView.delegate = self;...UIScrollView,并保存信息 这里只需要将UIScrollView和UIPageControl 从主屏幕上移除就可以了,别忘了将启动信息保存到 NSUserDefaults 中,当然你可以设置一些动画效果...,或者需要点击才能移除都可以,下面给出的代码是一个简单的动画效果: 代码如下: -(void)scrollViewDisappear{ //拿到 view 中的 UIScrollView 和...*page = (UIPageControl *)[self.view viewWithTag:201]; //设置滑动图消失的动画效果图 [UIView animateWithDuration

54810

Android ScrollView设置初始position的方法

刚听到这个需求的时候,觉得这个很简单,直接设置ScrollView的初始滚动值即可。然而,当真正实现的时候却发现,Android压根没有方法可以设置ScrollView的初始滚动值。...动画的实现方案比较简单,进来之后等待一段时间,然后通过smoothScrollTo方法一点点的滚动ScrollView。然而,实验之后发现这个方法并不好用,没办法控制动画时间。...但是为难的是如何做到初始化ScrollView的默认滚动值。如果在onCreate里面调用scrollTo是无效的,因为这时候ScrollView都没有布局好。...当我看着上面动画的代码发呆的时候,突然注意到了scrollY这个值,为什么Animator能够通过这个值来调整ScrollView的滚动位置呢?...于是自己动手在onCreate的时候通过反射修改ScrollView的scollY属性。结果调试发现ScrollView压根没有这个属性。为什么呢?

3.9K80

【特斯拉组件】iOS高性能PageController

Scrollview的滑动有一个难点,怎样保证ScrollView的向下滑动的反弹处紧贴Tab,而Scrollview又可以向上滑动到导航栏。...首先Scrollview的可见范围是整屏的,也就是设置frame为整屏,Scrollview滑动的范围,就由ContentInset,ContentOffset 共同决定。...因为我们知道UIScrollView的滑动范围会紧贴scrollView的bounds。...不相邻页面的非交互切换会闪过中间的页面,产生不好的用户体验,本组件的解决方法是 非交互切换,模拟切换的动画,这里需要考虑的一个复杂情况是第一次动画还未结束就开始第二次,这时候需要提前结束第一次动画。...观察UIPageViewController,它到一定的内存限制,会主动去释放很久没翻过的页面。所以这里,可以使用LRUCache的机制,只保存一定数量的页面。

1.9K50

阅读器多种翻页的设计与实现

; 4、用户pan手势结束,根据动画完成程度确定是补齐动画还是回退; 5、处理完动画相关,将状态重置为1,接受用户的pan手势; 如果还要支持tap手势,则自动完成一次动画效果,再将状态重置为status_show...1 : 0; // 经验数值,多次尝试得出 另外一个问题是手势在进行到一半时如果APP切入后台,动画出现暂停的情况。...简单的实现效果 上图的实现过程非常简短: - (void)scrollViewDidScroll:(UIScrollView *)scrollView { if (self.scrollView.contentOffset.y...A: [self.scrollView setContentOffset:CGPointMake(0, self.view.height) animated:NO]; [self.scrollView...= nil; [self.scrollView setContentOffset:CGPointMake(self.scrollView.contentOffset.x, y) animated

3.1K10

【Android从零单排系列二十六】《Android视图控件——ScrollView

ScrollView基本介绍 ScrollView是Android平台上的一个可滚动视图容器,它用于在一个可滚动区域内显示大量内容。...二 ScrollView使用方法 在XML布局文件中定义ScrollView容器。在需要可滚动内容的区域内添加ScrollView标签,并指定其宽度、高度以及其他属性。...-- 在这里添加您的内容视图 --> 在ScrollView内部添加内容视图。在ScrollView标签内部,可以放置各种UI组件来展示要滚动的内容。...smoothScrollTo(int x, int y):平滑地将ScrollView滚动到指定的位置,会有滚动动画效果。...smoothScrollBy(int dx, int dy):平滑地将ScrollView滚动指定的偏移量,会有滚动动画效果。

33120
领券