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

ViewGroup在我设置的时候仍然可以滚动它可以在getScrollX()>=0时滚动

ViewGroup是Android中的一个容器类,用于包含和管理其他视图(View)的布局容器。它可以在屏幕上显示一组视图,并提供滚动功能。

当设置了滚动属性时,ViewGroup可以在getScrollX()>=0时进行滚动。getScrollX()方法返回ViewGroup在水平方向上的滚动偏移量,当滚动偏移量大于等于0时,ViewGroup可以进行滚动操作。

滚动功能可以通过以下方式实现:

  1. 使用ScrollView:ScrollView是一个垂直滚动的ViewGroup,可以包含一个子视图。当子视图的内容超过屏幕高度时,可以通过滑动屏幕来查看剩余内容。可以通过在布局文件中使用ScrollView来实现滚动功能。
  2. 使用HorizontalScrollView:HorizontalScrollView是一个水平滚动的ViewGroup,可以包含一个子视图。当子视图的内容超过屏幕宽度时,可以通过滑动屏幕来查看剩余内容。可以通过在布局文件中使用HorizontalScrollView来实现水平滚动功能。
  3. 自定义滚动效果:可以通过自定义ViewGroup来实现滚动效果。可以重写onTouchEvent()方法来处理滑动手势,并通过调用scrollTo()方法来实现滚动操作。

ViewGroup的滚动功能可以应用于各种场景,例如:

  1. 列表视图:当需要显示大量数据时,可以使用滚动的列表视图来优化用户界面,例如RecyclerView、ListView等。
  2. 图片浏览器:当需要显示多张图片时,可以使用滚动的图片浏览器来方便用户查看不同的图片。
  3. 文章阅读器:当需要显示长篇文章时,可以使用滚动的文章阅读器来提供良好的阅读体验。

腾讯云提供了一些相关产品和服务,可以用于支持和扩展云计算领域的开发工作。以下是一些推荐的腾讯云产品和产品介绍链接地址:

  1. 云服务器(CVM):提供弹性计算能力,支持快速创建、部署和管理虚拟服务器实例。详情请参考:云服务器产品介绍
  2. 云数据库MySQL版(CDB):提供高性能、可扩展的关系型数据库服务,支持数据备份、容灾、自动扩容等功能。详情请参考:云数据库MySQL版产品介绍
  3. 云存储(COS):提供安全、可靠、低成本的云端存储服务,支持存储和管理各种类型的数据。详情请参考:云存储产品介绍

请注意,以上仅为示例,腾讯云还提供了更多丰富的产品和服务,可根据具体需求选择适合的产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

不再迷惑,也许之前你从未真正懂得 Scroller 及滑动机制

综合上面两种情况,我们可以给出一个结论: 对于一个 View 或者 ViewGroup 而言,滚动针对内容,View 内容体现在它要绘制内容上面,ViewGroup 内容相当于所有子...我们屏幕上另外设置一个 Button,每次 Button 点击时让 TestView 在当前位置基础上滚动,前面讲过可以调用它 scrollBy() 方法。...//当前 x 坐标 mCurrentY //当前 y 坐标 所以,在这里有一个设想————Scroller 内部也一定有一个属性动画机制,就如同在前面博文模拟一样,它在初始时候设置好 mStartX...TestView 中内容可以在任意方向滚动,如果我们想进行限制,只想上下垂直滚动和左右水平滚动,那么怎么办呢?其实,很简单,把相应方向上速度设置为 0 就好了。...View 滚动区域是内容,也就是绘制内容,而对于一个 ViewGroup 而言,内容还包括 children。

1.5K10

之从源码分析mScrollX,scrollTo(),smoothScrollTo

还费时费力! 如何才能完全掌握一个知识?当你能把讲清楚时候,你才算掌握了他,所以这也是整理这些知识点最大原因。...,即表示原先偏移基础上发生偏移,通俗说就是相对我们当前位置偏移。...dy, maxY)) - scrollY;为方法核心,比较绕,大致为计算当前滑动状态下可划动距离; if(duration > ANIMATEDSCROLLGAP) 这句是判断当前是否滚动,当还在滚动状态下...smoothScrollTo(int x, int y): 从源码中看出,实际上是调用了smoothScrollBy(x - mScrollX, y - mScrollY);方法 根据x,y值来计算剩余可滚动位移量...作为自己孩子,并对其进行管理,当然孩子也可以ViewGroup类型。

1.4K60

Android自定义View弹性滑动Scroller详解

并不可以使View真正滑动,而是配合scrollTo/ScrollBy让view产生缓慢滑动,产生动画效果,其实和属性动画是同一个原理。...mScrooler.startScroll(int startX,int startY,int endx,int endY,int duration); invalidate();//ViewGroup...中,invalidate()方法会导致computeScroll()方法执行 //③computeScroll()方法中判断:mScroller是否结束,如果没有结束就调用scrollTo(...)让view处于正确位置 @Override public void computeScroll() { //computeScrollOffset()判断是否还在滚动,如果还在滚动,会获取到某一时刻..."getWidth: " + getWidth()); // 第二步,调用startScroll()方法来初始化滚动数据并刷新界面 mScroller.startScroll(getScrollX(),

1.6K20

Android高级图片滚动控件,编写3D版图片轮播器

对图片进行立体操作还是要使用到Camera技术,如果你对这个技术还不太熟悉,可以到网上搜一些相关资料,或者参考前面的一篇文章:Android中轴旋转特效实现,制作别样图片浏览器 。...然后还提供了一个setRotateData()方法,用于设置当前图片下标和滚动距离,有了这两样数据就可以通过computeRotateData()方法来计算旋转角度一些数据,以及通过isImageVisible...接下来当图片需要绘制到屏幕上时候就会调用onDraw()方法,onDraw()方法中会进行判断,如果当前图片可见就调用computeRotateData()方法来计算旋转时所需要各种数据,之后再通过...除此之外,Image3DSwitchView中还提供了setCurrentImage()方法和setOnImageSwitchListener()方法,分别可用于设置当前显示哪张图片,以及设置图片滚动监听器...,有了这些方法,你可以更加轻松地Image3DSwitchView基础上进行扩展,比如说加入页签显示功能等。

3.9K81

Android 侧滑关闭Activity实例

唯一方法还是自己随手鲁一个~,侧滑这个东西Android中是比较少见,iOS是最常见不过了,因为毕竟他们没有物理返回键。还有UIScrollView那些。...然而我们用最多QQ也只是有个功能,并没有真正滑动效果。至于微信记得N久以前滑出了一个bug。也没什么印象了。估计也是极小概率事件。于是,当初就强行鲁了一个。...canvas.restore(); } 首先我们ACTION_DOWN记录按下点X坐标 然后ACTION_MOVE中判断,如果我们getScrollX() + rightMovedX...最后ACTION_UP中判断如果手指滑动距离大于布局宽度1/3,表示将Activity滑出界面,否则滑动到起始位置,我们利用Scroller类startScroll()方法设置好开始位置,滑动距离和时间...,然后调用postInvalidate()刷新界面,之后就到computeScroll()方法中,我们利用scrollTo()方法对该布局父布局进行滚动滚动结束之后,我们判断界面是否滑出界面,如果是那就划出页面让

48131

Android高级图片滚动控件实现3D版图片轮播器

对图片进行立体操作还是要使用到Camera技术,如果你对这个技术还不太熟悉,可以到网上搜一些相关资料,或者参考前面的一篇文章:Android实现中轴旋转特效 Android制作别样图片浏览器 。...方法进行绘制 super.onDraw(canvas); } else { if (isImageVisible()) { // 绘图时需要注意,只有当图片可见时候才进行绘制,这样可以节省运算效率...然后还提供了一个setRotateData()方法,用于设置当前图片下标和滚动距离,有了这两样数据就可以通过computeRotateData()方法来计算旋转角度一些数据,以及通过isImageVisible...接下来当图片需要绘制到屏幕上时候就会调用onDraw()方法,onDraw()方法中会进行判断,如果当前图片可见就调用computeRotateData()方法来计算旋转时所需要各种数据,之后再通过...,有了这些方法,你可以更加轻松地Image3DSwitchView基础上进行扩展,比如说加入页签显示功能等。

3.2K10

Android 实现通知消息水平播放、无限循环效果

今天我们来实现一个简单效果,通知消息无限循环播放,先看效果图: ? 这个效果也很常见,实现方法也有很多,是使用RecyclerView来实现,觉得还是挺不错,就写下来分享给大家。...,然后设置RecyclerView, 我们看一下MyAdapter,getItemCount()方法里,我们返回次数是100000,目的就是为了让数据大一点,看似达到了无限播放效果,毕竟用户一个界面的停留时间是有限...在看一下MainActivityinitView方法,设置好了RecyclerView之后,使用handler发送一个空消息,到达handlerhandleMessage方法,这个方法处理,就是我们核心了...到此我们功能就实现了。 下面做两个优化: 1.第一个优化, 当页面有跳转时,禁止消息滚动,即暂停,当页面回来时候再接着滚动。...2.第二个优化, 禁止手动滚动消息,最上面那个效果图,可以看出,我们可以用手滚动消息,如果不想让用户用手滚动,则禁止响应move事件即可,由我们布局文件可知,RecyclerView父布局是LinearLayout

90941

Android Scroller完全解析,关于Scroller你所需知道一切

另外,作为一个对新鲜事物从来后知后觉的人,终于也一年里改用MarkDown编辑器来写博客了,希望大家博客里也能体验到新年新气象。...写博客题材很多时候取决于平时大家问问题,最近一段时间有不少朋友都问到ViewPager是怎么实现。...那ViewPager相信每个人都再熟悉不过了,因此实在是太常用了,我们可以借助ViewPager来轻松完成页面之间滑动切换效果,但是如果问到它是如何实现的话,感觉大部分人还是比较陌生, 为此也是做了一番功课...其实说到ViewPager最基本实现原理主要就是两部分内容,一个是事件分发,一个是Scroller,那么对于事件分发,其实很早之前就已经写过了相关内容,感兴趣朋友可以去阅读 Android事件分发机制完全解析...新建一个ScrollerLayout并让继承自ViewGroup来作为我们简易ViewPager布局,代码如下所示: /** * Created by guolin on 16/1/12. */

1.6K60

自定义View三问—字节真题

说说View/ViewGroup绘制流程 View绘制流程是从ViewRootperformTraversals开始经过measure,layout,draw三个过程最终将View绘制出来。...对于ViewGroup测量,一般要重写onMeasure方法,onMeasure方法中,父容器会对所有的子View进行Measure,子元素又会作为父容器,重复对它自己子元素进行Measure,这样...draw()会依次调用四个方法: 1)drawBackground(),根据 layout 过程中获取 View 位置参数,来设置背景边界。...然后可以通过getMeasuredWidth/getMeasuredHeight获取宽高,最后通过setMeasuredDimension方法存储本身总宽高。...X坐标,滚动开始时Y坐标,横向滚动距离,纵向滚动距离 mScroller.startScroll(getScrollX(), 0, dx, 0);

50010

横向滑动视图HorizontalScrollView精炼详解

大家好,又见面了,是你们朋友全栈君。 一、前期基础知识储备 由于移动设备物理显示空间一般有限,不可能一次性把所有要显示内容都显示屏幕上。...HorizontalScrollView是FrameLayout子类,这意味着你只能在下面放置一个子控件,这个子控件可以包含很多数据内容。...有可能这个子控件本身就是一个布局控件,可以包含非常多其他用来展示数据控件。这个布局控件一般使用是一个水平布局LinearLayout 。...设置到界面中,进行显示,运行效果如图: 三、上代码,具体实现图片类横向布局 (1)主布局文件 <?...,从0开始,注意,此实现方式不论子项是否可见,索引值都是不变,比如一共有7个子项,索引值是0~6,然后将前三个子项设为不可见,此时所有子项索引值仍然是0~6,而不会有所变化。

3.5K20

简单仿写Android控件SlidingMenu实例代码

SlidingMenu (侧滑菜单形式)android开发过程中,经常用到,这次我们通过一个简单案例来仿写SlidingMenu 大体功能,下面 是主要实现代码: java代码:(重写onTouchEvent...方法 处理侧滑菜单处事件分发机制) public class SlidingMenu extends ViewGroup implements OnClickListener { private View...(int) event.getX(); int dX = moveX - downX; // scrollTo(x, y);//绝对移动 // scrollBy(x, y);//相对移动 // 获取滚动坐标...break; } return true; } @Override public void computeScroll() { super.computeScroll(); //调用这个方法来获取期望滚动点...,如果返回true,表示动画还没有执行完成 if(mScroller.computeScrollOffset()){ //用Scroller滚动,获取下一个期望滚动点,滚动过去 //获取期望点滚动坐标

37810

5.触摸事件、侧滑菜单

触摸事件 侧滑菜单--- github-SlidingMenu 1.ViewGroup中,让自己内容移动有以下三个方法个方法: layout(l,t,r,b); offsetTopAndBottom...(offset)和offsetLeftAndRight(offset); scrollTo和scrollBy方法; 注意:滚动并不是viewgroup内容本身,而是矩形边框  它是瞬间移动...2.自定义ViewGroup中一般不需要去实现onMeasure,  我们去实现系统已有的ViewGroup,比如FrameLayout,  它会帮我们区实现onMeasure方法 3....让view一段时间内移动到某个位置 a.使用自定义动画(让view一段时间内做某件事) b.使用Scroller(模拟一个执行流程,) layout会影响measure过宽高 scrollTo...直接使用SlideMenu测量参数,因为宽高都是充满父窗体 // mainView.measure(widthMeasureSpec, heightMeasureSpec); // // }

1.1K60

Android使用Scroller实现弹性滑动效果

比如对于普通View好比TextView其内容就是文本,ImageView内容则是drawable对象,采用这两种方法滑动时候其实分别滑动是文本及drawable对象,对于ViewGroup采用这两种方法滑动时候则是对其子元素滑动...所以想要使用scrollTo、scrollBy方法实现拖动View(指的是普通View不包含ViewGroup效果必须在View外面包一层ViewGroup。...方法是实现SmoothScrollView平滑滑动,可以看到实现平滑滑动首先调用第18行ScrollerstartScroll方法来设置滑动参数,下文会分析这个方法,这里先放一放。...然后第20行调用invalidate方法,这个方法会导致SmoothScrollView重绘,从而调用draw方法之后又会调用computeScroll方法,第24行可以看到这里重写了computeScroll...mDurationReciprocal = 1.0f / (float) mDuration; } 从以上代码可以看到startScroll方法其实根本没有滑动View只是对滑动参数进行设置

1.3K20

onTouchEvent(二) 使用Scroller实现黏性滑动ScrollView

另外,昨天发了一篇一触即发——App启动优化最佳实践,但是由于时间比较紧,只能趁着中午午休时候发,所以,很多人可能没有看见,这里再给大家推荐下,希望大家能够不断优化自己App。...思路 滑动时候判断最终偏移量是不是超出了子view(ViewGroup内容)范围,如果超出了就限制不让其超出,这样就可以做出一个滑动ScrollView并且不会滑出界 当松手(action_up)...时候判断当前偏移量该子view什么位置,如果小于三分之一就滑动回该view头部,如果超出三分之二就滑动到下个view 首先看看我们需要做些什么,自定义View要复写方法有好几个,我们要复写有...该函数draw中被调用,故可以用来控制scroll。但其实一个空实现函数,那怎么做才能达到我们要效果呢?...很多文章(网上随便查)都是这么写。 PS:其实开始是相信大神们,后面写着写着有自己理解,就开始质疑了…然后注释掉跑了下,滑动是有时会黏性滚动有时不会,才又相信大神们了囧rz。

99830

自定义无限循环ViewPager(二)――ViewPager滑动原理解析

阅读本文之前,大家可以先去了解下Scroller用法,以便大家更好理解ViewPager滑动原理。...而如果viewpager显示区域内存在两个页面显示时候,从缓存列表遍历顺序就可以看出,返回必然是最左边页面。...()方法就分析到这里,其实就做了三件事: 将DecorView显示屏幕中,不移除屏幕 回调接口onPageScrolled()方法 回调接口transformPage()方法,自定义实现页面转换动画...sx; int dy = y - sy; //如果需要滚动距离为0,结束滚动,更新页面信息,设置空闲滚动状态 if (dx == 0 && dy =...computeScroll()方法最后,如果滑动结束了,调用了completeScroll(true)方法,此方法很多地方都用调用,我们来看下究竟做了那些操作。

2.2K10

Android开发(13) 移动View

概述 我们常用linearlayout,等都属于流布局,流布局中如何移动控件呢? 决定做个尝试。虽然可以使用绝对布局,但我不倾向使用这个布局。那么看看我方式吧。 ?...我们就用来来控制控件位置,改动值将会产生移动效果。...我们先获得该控件 布局参数 然后转型为ViewGroup.MarginLayoutParams 更改margin数值,通过更改 该控件上下左右偏移量(相对于父容器控件原点),来更改控件呈现位置...通过上面的方式,我们可以产生控件移动效果。 ScrollBy方式 同时,我们了解下 ScrollBy这个方法,该方法可以产生控件滚动效果。而看起来移动了该控件子内容。...执行代码后,我们看到产生了 类似 滚动条移动后,控件 上移 效果。看起来像是重绘了视图内容,而变化了绘制坐标原点。 类似的还有个scroolTo方法,该方法需要指定目的偏移量。

64000

HorizontalScrollView扩展总结

大家好,又见面了,是你们朋友全栈君。...ScrollView相信大家都已经比较熟悉了,它是支持垂直滚动开发中经常使用到,与垂直滚动相对就是水平滚动HorizontalScrollView,有时我们进行页面切换时候也会用到HorizontalScrollView...在说扩展之前,先说一下HorizontalScrollView特点 (1) 支持水平滚动 (2) 和ScrollView一样,只包括一个子View,通常是用LinearLayout作为子View...,当然还可以用用其它View (3) HorizontalScroll内部使用到OverScroller 缺省滑动时间为DEFAULT_DURATION = 250 ms (4) 可以平滑也可以瞬间滑动...smoothScrollingEnabled)方法 设置mSmoothScrollingEnabled标记只doScrollX(int delta)有使用到 doScrollX内部如果mSmoothScrollingEnabled

76410
领券