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

为什么在使用ScrollView.FOCUS_DOWN时,ScrollView会先滚动到顶部,然后滚动到底部?

在使用ScrollView.FOCUS_DOWN时,ScrollView会先滚动到顶部,然后再滚动到底部的原因是ScrollView的默认行为以及其工作原理。ScrollView是Android平台上的一个视图容器,用于显示超出屏幕范围的内容,并支持滚动操作。当设置ScrollView的焦点为FOCUS_DOWN时,ScrollView会尝试滚动到焦点所在的位置,确保该位置处于可见范围内。

具体来说,当ScrollView的焦点设置为FOCUS_DOWN时,ScrollView会首先滚动到顶部,然后再滚动到底部。这是因为ScrollView的默认滚动行为是从顶部滚动到底部。当设置焦点为FOCUS_DOWN时,ScrollView会根据该设置先滚动到顶部,然后再滚动到底部,以便确保焦点所在位置处于可见范围内。

这种滚动行为的设计可能是为了保证视图的完整性和一致性。首先将视图滚动到顶部,可以确保在接下来的滚动过程中不会发生内容遮挡或显示不完整的情况。然后再滚动到底部,以便将焦点所在的位置显示在可见范围内,方便用户浏览和操作。

需要注意的是,ScrollView的滚动行为可能受到具体的布局和内容大小的影响,有时可能会出现滚动到顶部后无法再滚动到底部的情况。此时可能需要考虑调整布局或其他相关参数,以适应实际需求。

至于腾讯云相关产品和产品介绍链接地址,暂时无法提供,建议您访问腾讯云官方网站或联系腾讯云客服获取相关信息。

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

相关·内容

Android 控制ScrollView滚动的实例详解

Android 控制ScrollView滚动的实例详解 开发中,我们经常需要更新列表,并将列表拉倒最底部,比如发表微博,聊天界面等等, 这里有两种办法,第一种,使用scrollTo(): public...,使用fullScrol() 下面我们看一下这个函数: scrollView.fullScroll(ScrollView.FOCUS_DOWN);滚动底部 scrollView.fullScroll...(ScrollView.FOCUS_UP);滚动顶部 需要注意的是,该方法不能直接被调用因为Android很多函数都是基于消息队列来同步,所以需要一部操作,addView完之后,不等于马上就会显示,而是队列中等待处理...,虽然很快,但是如果立即调用fullScroll, view可能还没有显示出来,所以失败,应该通过handler新线程中更新 handler.post(new Runnable() { @Override...public void run() { scrollView.fullScroll(ScrollView.FOCUS_DOWN); } }); 如有疑问请留言或者本站社区交流讨论

92221

Android中控制和禁止ScrollView自动滑动到底部的方法

一、Android 控制ScrollView滚动底部 开发中,我们经常需要更新列表,并将列表拉倒最底部,比如发表微博,聊天界面等等, 这里有两种办法,第一种,使用scrollTo(): public...,使用fullScrol() 下面我们看一下这个函数: scrollView.fullScroll(ScrollView.FOCUS_DOWN);滚动底部 scrollView.fullScroll...(ScrollView.FOCUS_UP);滚动顶部 需要注意的是:该方法不能直接被调用 因为Android很多函数都是基于消息队列来同步,所以需要一部操作,addView完之后,不等于马上就会显示...,而是队列中等待处理,虽然很快,但是如果立即调用fullScroll, view可能还没有显示出来,所以失败 应该通过handler新线程中更新 handler.post(new Runnable...ScrollView自动滑动到底部 但有的时候能我们又需要禁止ScrollView自动滑动到底部,以下是解决方法: 具体表现 ScrollView 嵌套 GridView 、ListView等类似的控件

3.6K20
  • 安卓使ScrollView滚动底部代码

    大家好,又见面了,我是全栈君 开发中,我们经常需要更新列表,并将列表拉倒最底部,比如发表微博,聊天界面等等, 这里有两种办法,第一种,使用scrollTo(): public static void...,使用fullScrol() 下面我们看一下这个函数: scrollView.fullScroll(ScrollView.FOCUS_DOWN);滚动底部 scrollView.fullScroll(...ScrollView.FOCUS_UP);滚动顶部 需要注意的是,该方法不能直接被调用 因为Android很多函数都是基于消息队列来同步,所以需要一部操作, addView完之后,不等于马上就会显示,...而是队列中等待处理,虽然很快,但是如果立即调用fullScroll, view可能还没有显示出来,所以失败 应该通过handler新线程中更新 // 何问起 hovertree.com handler.post...(new Runnable() { @Override public void run() { scrollView.fullScroll(ScrollView.FOCUS_DOWN

    1.1K20

    仿腾讯课堂固定滚动列表ReactNative组件

    - 80}},那这样滚动距离120滚动条到底部了,视频播发控件的区域距离屏幕顶部还有80。...跑起来运行后发现的一个严重的问题是,如果Tab导航控件的内容区域存在ScrollView或者ListView,无法滚动,只有最外层可以滚动,也就是手势滚动被拦截了?...一个是怎么判断手势滑动以及外层滚动容器到底部和内层滚动顶部? 第二个是寻找滚动组件并通知内层滚动组件开始滚动?...剩下最后一个如何通知内层容器滚动呢?卖个关子,解决这个问题之前,我们先来了解下Android中的View事件是如何传递的。 正所谓知己知彼,百战不殆,看看Android触摸事件类型有哪些?...&&向上滑:不拦截 RNFixScrolView未到底部&&向上滑:拦截 RNFixScrolView未到底部&&向下滑&&子ScrollView已到顶部:拦截 RNFixScrolView已到底部

    4.9K70

    Android开发(3) 可滚动的录入表单演示

    本文使用的控件有: RelativeLayout 相对布局 ScrollView 滚动视图 TableLayout 表格布局 ?...2.根控件里放置三个子控件,对应刚刚提到三个部分(顶部,中间。底部)等。 3.分别设定上面三个控件的布局属性(或者说设置布局,对齐样式)。...我们设定顶部控件的相对属性为:android:layout_alignParentTop="true",这个属性意思是对齐父控件的顶部 然后设定底部控件的属性为:android:layout_alignParentBottom...中间控件使用一个ScrollView滚动视图控件。...该控件的好处是当它的子控件太长自动出现滚动条。 下面我们为ScrollView下添加一个TableLayout,这个一个表格布局控件,使得布局非常整齐。

    1.2K00

    Android ScrollView粘性头部代码分享

    前言,一天点外卖的时候,注意饿了么列表页的滑动效果不错,但是觉得其中的手势滑动还是挺复杂的,正好又碰到了熟悉Touch事件的理解当中,所以就抽空对着饿了么的列表页面尝试写写这个效果 1.贴一个实现的效果图...另外在这里ScrollViewWithStickHeader增加autoscroll属性,默认是关闭的,如果autoscroll:true的话,我们手指放开的时候,contentView判断是否自动滑动到顶部还是隐藏不见...6.2.既然我们知道了怎么让view的touch事件,接下来我们就要明白什么情况下我们应该让父view执行滚动事件,什么时候让子view执行滚动事件。...如下,我列了表格: 父ScrollVIewScrollView 手势滑动方向 滑动事件交由哪个view控制 不在底部顶部向上父ScrollView 不在底部顶部向下父ScrollView 底部不在顶部向上子...ScrollView 底部不在顶部向下子ScrollView 底部顶部向下父ScrollView 底部顶部向上子ScrollView 在这里当父ScrollView不在底部的时候,不会出现子ScrollView

    1.4K20

    Android开发笔记(一百六十四)仿京东首页的下拉刷新

    倘若还没拉到顶,继续下拉动作属于正常的页面滚动;倘若已经拉到顶了,继续下拉动作才会拉出头部提示刷新。所以此处得捕捉页面滚动顶部的事件,相对应的则是页面滚动底部的事件。...鉴于App首页基本采用滚动视图ScrollView实现页面滚动功能,故而该问题就变成了如何监听该视图滚到顶部或者滚到底部。...正好ScrollView提供了滚动行为的变化方法onScrollChanged,通过重写该方法即可判断是否到达顶部底部,重写后的代码片段如下所示:     protected void onScrollChanged...然而成功监听页面是否到达顶部底部,仅仅解决了状态栏和工具栏的变色问题。因为页面到顶继续下拉,ScrollView要怎么处理?...这个和事佬必须是下拉布局和滚动视图的上级布局,考虑下拉布局在上,而滚动视图在下,故它俩的上级布局继承线性布局LinearLayout比较合适。

    2.9K40

    Android 类似UC浏览器的效果:向上滑动地址栏隐藏功能

    思路要求 ScrollView 嵌套 地址栏 和 WebView 手指滑屏向下滚动(网页向上),如果网页有滚动条,首先把 地址栏 滚动到消失,然后 WebView 才开始滚动; 手指滑屏向上滚动(网页向下...),如果地址栏隐藏,那么 地址栏 首先慢慢显示,然后 WebView 才开始滚动。...事件传送给 ScrollView 后无法一次 Touch 事件中再接收,所以导致如果有地址栏,向下滑动第一次只能滑动到 ScrollView 消失 + Hack网页,加入JS脚本,前行让网页顶部空出来一段空白...GestureDetector 逻辑分发 – 决定是滑动webview还是改变webview高度从而改变ScrollView滚动范围(ScrollView总是滚动到最底) WebView 重画之后检测当前地址栏偏移...(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { mScrollView.fullScroll(ScrollView.FOCUS_DOWN

    1.5K20

    Android ScrollView监听滑动到顶部底部的两种方式(你可能不知道的细节)

    Android ScrollView监听滑动到顶部底部,虽然网上很多资料都有说,但是不全,而且有些细节没说清楚 使用场景: 1....做一些复杂动画的时候,需要动态判断当前的ScrollView是否滚动底部或者顶部 2....ScrollView滚动顶部或者底部主动触发一些操作(典型的就是滚动底部触发自动加载操作) 两种方式: 1. onScrollChanged方式,自己计算 2. onOverScrolled使用系统计算的结果...,上面这个原则就是对的,如果要考虑的话,这里只能使用onScrollChanged 滚动顶部底部对应的计算关系: ?...; /** * 监听ScrollView滚动顶部或者底部做相关事件拦截 */ public class SmartScrollView extends ScrollView { private

    3.5K70

    Android中文API——ScrollView

    TextView类也有自己的滚动功能,所以不需要使用ScrollView,但是只有两个结合使用,才能保证显示较多内容时候的效率。但只有两者结合使用才可以实现在一个较大的容器中一个文本视图效果。...此方法将视图滚动顶部或者底部,并且将焦点置于新的可视区域的最顶部/最底部组件。若没有适合的组件做焦点,当前的ScrollView会收回焦点。...此函数会引起对onScrollChanged(int, int, int, int)函数的调用并且让视图更新。 当前版本取消了子视图中的滚动。...返回值 滚动底部能见度,值的范围在浮点数0.0f1.0f之间。 protected float getTopFadingEdgeStrength () 返回滚动顶部的能见度。...返回值 滚动顶部能见度,值的范围在浮点数0.0f1.0f之间。

    4.6K30

    NSScrollView官方文档

    当用户拖拽内容到顶部或者底部滚动越过任何被定义contentInset的区域之内的范伟,例如navigation controller和toolbar。...滚动到特定的Offset:滚动到特定的top-left位置可以通过两种方式完成: setContentOffset:animated:方法,滚动内容特定的content offset。...scrollRectToVisible:animated:方法滚动到特殊的矩形区域,以确保区域可视范围之内。 如何在scrollView内容不够的时候也可以进行拉伸:通过设置弹跳属性。...Bouncing只有bounces属性为YES(默认值)才可以使用。如果bounces为NO,则alwasyBounceVertical和alwaysBounceHorizontal属性不可用。...如何确保内容zoom是锐利的:如果zoom的内容是实时的,并且需要在zoom是锐利的,那么你的app的类需要用Core Animation来绘制。

    2.8K20

    Android的FixScrollView自定义控件

    需求模仿腾讯课堂视频播放详情页面,效果如图: 1外层滚动控件到顶部,内层控制滚动 2内层滚动顶部,外层控制滚动 835108-20170331111709149-156183149.gif 835108...),现在外部的ScrollView设定一个固定高度(屏幕高度+视频高度一半),接下来解决的难点是要使用原生的父ScrollView根据手势以及父ScrollView滚到底部判断是否把事件分发给子页面中ListView...为什么我们说是“该系列事件”,而不是说“该事件”呢?注意,View的事件体系中,从down->move->……->move->up。...一开始的思路是切换tab页面的话其他tab页面Listview控件可见状态不可见或者消失,完全不是这么回事,后来发现其实View的视图状态一直是可见的,不过那时候技术老大提醒说点击不同的tablistview...) { //获取view整个屏幕中的坐标如果x==0的话代表这个scrollview是正在显示 int[] location

    1.8K80

    【IOS开发基础系列】UIScrollView专题

    1 UIScrollView原理        滚动过程当中,其实是修改原点坐标。当手指触摸后,scroll view暂时拦截触摸事件,使用一个计时器。...(如当你touch一个table, 停止了一然后开始scrolling,那一行就首先被highlight,但是随后就不在高亮了)         滚动过程当中,其实是修改原点坐标。...    当值是 YES 的时候,用户触碰后,然后一定时间内没有移动,scrollView 发送 tracking events,然后用户移动手指足够长度触发滚动事件,这个时候,scrollView...发送了 touchesCancelled:withEvent: subview,然后 scroView 开始滚动。...directionalLockEnabled     默认是 NO,可以垂直和水平方向同时运动。当值是 YES ,假如一开始是垂直或者是水平运动,那么接下来锁定另外一个方向的滚动

    56330

    Android仿微信朋友圈点击评论自动定位相关行功能

    打开你的微信朋友圈,点击评论,你就会发现有一个小细节:文本输入框的高度恰好定位这条信息的底部位置 ?...跟朋友圈一样,我们也把头给加上去,这样我们点第一条信息的时候,效果更好一些 信息内容简单些,反正我们就看看效果 <?xml version="1.0" encoding="utf-8"?...这里我们可以使用Dialog,同时布局中要使用ScrollView来进行占位 <?xml version="1.0" encoding="utf-8"?...这样黄色顶部与红色顶部中间的区域高度,就是RecyclerView需要滚动的数值这样就好办了,我们使用getLocationOnScreen去获取差值,再加上评论区域高度就行了 fun showInputComment...但是还有几个小问题,如果是点击最后一行的话,因为滚动空间不足而不能实现相同的效果,并且按返回键的时候,键盘消失,然后再按一次之后Dialog才消失。

    1.5K60

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

    当布局超过屏幕大小时,ScrollView自动启用滚动功能,用户可以通过滑动屏幕来查看隐藏部分的内容。...ScrollView中,只能包含一个直接子视图(ViewGroup),通常是一个垂直方向的线性布局或相对布局。如果需要水平滚动效果,可以使用HorizontalScrollView作为替代。...二 ScrollView使用方法 XML布局文件中定义ScrollView容器。需要可滚动内容的区域内添加ScrollView标签,并指定其宽度、高度以及其他属性。...android:fadeScrollbars:控制滚动条是否不活动状态渐隐。设置为true表示滚动渐隐,默认为false。...fullScroll(int direction):使ScrollView滚动到指定的边界,参数direction可以是View.FOCUS_UP(滚动顶部)或View.FOCUS_DOWN(滚动底部

    41720

    Android带你解析ScrollView--仿QQ空间标题栏渐变

    )和纵向滚动视图(ScrollView),今天主要研究纵向的。...相信大家开发中经常用到,ScrollView的功能已经很强大了,但是仍然满足不了我们脑洞大开的UI设计师们,所以我们要自定义…本篇文章主要讲监听ScrollView的滑动实现仿QQ空间标题栏渐变,先看一下效果图...android:soundEffectsEnabled 设置点击或触摸是否有声音效果 android:fadingEdge 设置拉滚动,边框渐变的放向。...ScrollView滑动监听: Google并没有给我们提供ScrollView的滑动距离、是否滑动到布局底部顶部的方法,但是提供了一个onScrollChanged方法: @Override...image.png 然后我们需要获取图片的高度,并且设置滚动监听,随着滚动的距离来设置标题栏的颜色透明度和字体颜色的透明度 /** * 获取顶部图片高度后,设置滚动监听 */

    1.5K10

    仿淘宝、京东拖拽商品详情(可嵌套ViewPager、ListView、WebView、FragmentTabhost)实现效果图实现

    scrollview+webview.gif ScrollView+ViewPager 适用场景:底部需要添加多个界面,并且需要滑动 ?...scrollview+viewpager.gif ScrollView+Fragmenttabhost 适用场景:底部需要添加多个界面,但是不需要滑动 ?...DOWNSTAIRS : UPSTAIRS; } } 然后集中处理滚动事件,对于滚动与动画主要有如下几个问题需要解决: 如何知道上面或者下面的View已经滚动的到顶部或者底部...滚动到边界,如何拦截处理滑动 松手后如何处理后续的动效 如何判断滚动边界 首先来看第一个问题,如何知道上面或者下面的View滚动到了边界,其实Android源码中有个类ViewCompat,它有个函数...事件拦截处理 onInterceptTouchEvent返回True之后,就不会再执行了,我们只需要把握准确的拦截时机,比如如果处于上面的View,就要对上拉事件比较敏感,处于底部就要对下拉事件敏感,

    1.2K30

    羊皮书APP(Android版)开发系列(二十四)不常用但是很有用的两个属性:clipToPadding 和 clipChildren

    提出问题: 当我们为ListView、ScrollView、GridView设置了paddingTop或paddingBottom的时候,我们发现当滑动到顶部底部的时候,默认情况下padding/margin...滑动中一直存在,view总是不能滑动到最底部和最顶部,看起来很别扭。...问题原因: 由于默认情况下,clipToPadding为true,导致布局不能滑动到最顶部或最底部,很多人平时很少会关注这个属性。...解决办法: 布局ListView、ScrollView、GridView中将clipToPadding设置为false即可。...clipChildren默认为true,表示孩子不能绘制padding区域,即仅能绘制padding内部。clipChildren为false,表示孩子可以绘制padding区域。

    1.2K20

    项目需求讨论- 自定义滚轮(第二波新实现)

    大家好,在前段时间我写过用ScrollView实现了自定义滚轮,但是循环的效果不是特别好。(这次文章底部附上了Demo。O(∩_∩)O~) 项目需求讨论-自定义滚轮 ?...而且如果你手指快速的滑动,不停的滚动,你就会滑到顶部的位置。因为我们的是ScrollView 最后选中哪一项,才让它滚动到中间相应的那一项。 那有些人可能会说,那我就不只弄这几组。...是一个很理想的循环滚动的滚轮。 于是就使用RecycleViewer来进行相关的开发。正式起航。...3.比如只划一部分,如何让它自动滚到相应的Item(重点) 方法还是一样,通过当前获取到的滚到的Y值,然后除以每项的Item的高度,就能知道当前顶部是处于第几项,然后求余数就知道了当前顶部那项有多少是显示的...在上文我们ScrollView 中,我们使用的是getScrollY()方法来获取的,我本来 @Override public void onScrollStateChanged(RecyclerView

    1.1K20
    领券