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

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

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

3.6K70

Material Design — 提示框( Dialogs)

按钮文案要明确说明接下来将发生的操作 带有标题的警告 仅对高风险情况使用带标题的警告,例如连接可能丢失。 用户应该能够仅根据标题和按钮文本来理解选择。...不该有明确的取消按钮 明确说明 ·在简单提示框中,行高可以变化; ·简单的对话框在屏幕上垂直和水平都居中显示; ·提示框与屏幕左右边缘的距离应该至少为40dp,距离顶部和底部至少为24dp; ·该对话框的内容距离提示框边缘为...点击确认对话框中的“取消”,或按Android的“后退”,取消操作,放弃所有更改并关闭对话框。 ?...左图为带选择控件的提示框 避免使用提示框启动提示框 确认提示框应避免启动其他简单提示框或简单菜单,因为它们增加了页面复杂性并会增加了app的海拔。 如果需要完成任务,可以使用全屏提示框。...全屏提示框支持日期选择器 操作 在屏幕顶部放置全屏对话框的确认和离开操作。 确认 屏幕右上角的确认按钮使用描述性动词,例如:保存,发送,分享,更新或创建。

5.2K101
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    导航设计的10种模式

    实际项目中,顶部与底部配合使用的挺多。 ?...优点: 扩展性好:标签的个数没有上限,不过太多的话,越是后面的页面渗透率会越低; 占据空间小:相比于底部Tab,顶部Tab一般占据的空间更小(因为不需要考虑手指点击,所以可以把区域缩小,只选用图标或者文字即可...优点: 节省页面展示空间,让用户将更多的注意力聚焦到当前页面; 由于导航界面是隐藏在屏幕之外,展开之后整一页面都是导航菜单内容,所以可扩展和个性化的空间很大; 扩展性好,导航的个数没上限。...一般位于产品顶部,通过点击呼出导航菜单; 通常用来筛选同一信息模块下不同类别的信息,或者快速启动某些常用的功能模块,而不需要频繁的页面跳转 ; Android中对应的控件为spinner控件,但该控件用于同一类别下不同视图之间的切换...与宫格导航类似,常用于二级页面,不会默认展示任何实质内容,所以通常app不会在首页使用它; 无论ios开发和android 都有现成的列表布局插件和模板。 ?

    3.6K40

    特定任务上下文解耦用于目标检测(Chat-GPT协助完成)

    论文地址:https://arxiv.org/pdf/2303.01047.pdf 计算机视觉研究院专栏 作者:Edison_G 今天就让我来给大家介绍新技术,我是大家耳熟能详的Chat-GPT!...我们还将介绍该方法的优势和应用场景,以及该论文的主要贡献和意义。 顶部:原始FCOS的推理结果。底部:我们的TSCODE的推理结果。...结果在NMS之前显示,与地面真实边界最高IoU的边界框在绿色中显示,而前三个与地面真实边界最高分类得分的边界框在其他颜色中显示。...该方法可以将分类任务和定位任务分别处理,并分别生成空间粗糙但语义强烈的特征编码和高分辨率的特征映射。然后,将这些特征编码和特征映射组合起来,以形成最终的检测结果。...在分类任务中,我们可以使用上一节中生成的空间粗糙但语义强烈的特征编码,以更好地回归对象边界。具体来说,我们可以将这些特征编码和特征映射组合起来,以形成最终的检测结果。

    26720

    Android开发笔记(一百四十九)约束布局ConstraintLayout

    约束布局正是为了解决这些问题应运而生,它兼顾灵活性和高效率,可以看作是相对布局的升级版,在很大程度上改善了Android的用户体验。...该控件的顶部与另一个控件的底部对齐 layout_constraintBottom_toTopOf : 该控件的底部与另一个控件的顶部对齐 layout_constraintBottom_toBottomOf...="@color/blue" android:text="我是巡山的小喽啰" android:textSize="17sp" android:textColor...的下列属性说明: topToTop : 当前控件的顶部与指定ID的控件顶部对齐 topToBottom : 当前控件的顶部与指定ID的控件底部对齐 bottomToTop : 当前控件的底部与指定ID的控件顶部对齐...//水平方向上只能使用start和end,因为left和right可能无法奏效 container.startToStart = mLastViewId; //设置控件顶部与另一个控件的底部对齐

    2.1K20

    WordPress 主题教程 #13:样式化侧边栏

    如果你给了第一级 UL 应用了边框,第二级的 UL 同样也会有个边框。 保存并刷新就可以看到列表条目现在已经没有前面的圆点了。 注意下你是如何增加顶部和底部填充的。...,如何给这些模块之间添加空间呢,我们需要给 .sidebar ul li{} 添加的10像素顶部和底部填充。...为什么不在第一个地方的 UL 标签增加10像素的填充呢?这样的话将会有20像素的顶部填充和20像素的底部填充。...如果你还是不明白,那么就去给 .sidebar ul{} 增加顶部和底部填充,就会看到问题的所在了。...我的离线 WordPress 增加了多重页面链接是为了测试最低级别的链接看起的样子,注意到我已圈出在底部有不必要额外的填充,这是一个非常好的关于样式继承的例子。这里不是10像素而是20。

    1.1K20

    强大的ConstraintLayout:使用ConstraintLayout打造响应式UI

    可这到底是怎么实现的,现在看着这代码的我想了好久!...由于其他两个控件没有设置这个约束,因此约束布局会在满足所有控件约束的前提下,优先将剩余空间分配给底部预览区域(没有剩余空间?那就只有满足所有控件约束)。 完整布局代码如下: 顶部和底部均为`gone`,6.3'' 1440 x 2960 (Pixel 3 XL, 560dpi)] 顶部和底部均为gone,这回中部区域效果就不如预期般同时拓展到顶部和底部了,从右侧看,描述1...明了了原因的所在,怎么修复?约束关系的指定,只能指向一个,对这个场景而言,变成了两个:在顶部/底部区域可见时,约束指向顶部/底部区域;在顶部/底部区域不可见时,约束指向父布局。...问题又来了,Barrier指向几个控件的边缘,在这个场景,Barrier指向父布局和顶部(或底部)区域,那么它的bottom(或top)边缘,必然恒等同于父布局的bottom(或top),不就排不上用场了

    3K21

    为任意屏幕尺寸构建 Android 界面

    比如其中的一个成功案例 Candy Camera,它通过优化可折叠设备和大屏幕的布局,使得使用这些设备的用户在应用上花费的时间增加了 10%,7 天用户留存率更是增长了 14%,而这并不是个例。...如上图所示,我们会发现两个跟大屏显示相关的警告: 底部应用栏只推荐用于较小屏幕以及 MaterialTextView 的部分行包含超过 120 个字符。...△ 警告窗口 展开警告可以查看到 Android Studio 是否提供了修改建议,这里关于底部应用栏警告的修改建议就是使用 Navigation Rail、抽屉式导航栏,或使用顶部应用栏代替。...对于 Trackr,我们将会使用典型的列表加详情窗口的样式来解决这些警告,针对有着中等或较大宽度的设备,我们将使用 NavRail,而非底部应用栏,对于展开型宽度的设备我们将使用双窗口布局来展示任务和相关详情...但这次更改是针对屏幕尺寸做的决策,我们是不是可以让单个组件自身根据页面而拥有不同尺寸呢?例如我们有一张卡片,当在列表中因为空间的限制只展示标题和副标题,而有更多空间时,则调整为显示图像。

    4.2K20

    可视化格式模型-IFC

    行内格式化上下文(inline formatting contexts) 什么是行框 相对于块格式化上下文,在行内格式化上下文中,框(boxes)一个接一个地水平排列,起点是包含块的顶部。...水平方向上的 margin,border 和 padding 在框之间得到保留。框在垂直方向上可以以不同的方式对齐:它们的顶部或底部对齐,或根据其中文字的基线对齐。...行框的宽度由它的包含块和其中的浮动元素决定。高度的确定由行高度计算规则决定,后面会介绍。 行内框在行框中垂直方向上的对齐 行框的高度总是足够容纳所包含的所有框。...因此,一个段落就是行框在垂直方向上的堆叠。行框在堆叠时没有垂直方向上的分割且永不重叠。 如果一个行内框超出包含它的行框的宽度,它会被分割成几个框,并且这些框会被分布到几个行框内。...如果其值是 ‘justify’,用户端也可以拉伸行内框(除了 inline-table 和 inline-block 框)中的空间和文字 。对齐的时候是根据行框的宽度,居中对齐。 <!

    911100

    Android ConstraintLayout详解「建议收藏」

    大家好,又见面了,我是全栈君。 1. 概述 在本篇文章中,你会学习到有关ConstraintLayout — 一种构建于弹性Constraints(约束)系统的新型Android Layout。..." android:layout_height="match_parent"> android.support.constraint.ConstraintLayout> 在编辑器底部转换到...我们会看到一些警告,因为在ImageView以及TextView内没有contentDescription属性。内容描述(Content Description)属性对于构建可访问应用非常重要。...我们可以在TextView的顶部控键与ImageView的底部控键创建一个约束,如图: 移除约束:移除某个约束只需点击指定约束的控键;移除全部约束需要点击如下按钮: 下一步,创建ImageView...相对于约束来放置widget – 当在一个widget有至少两个相对的连接,比如说顶部和底部,或者左侧和右侧,然后就可以使用滑动条来调节widget在链接中的位置。

    2.4K30

    android常用布局详解「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。 view和布局 在一个Android应用程序中,用户界面通过View和ViewGroup对象构建。...android:layout_weight: 权重,用来分配当前控件在剩余空间的大小,如果你不设置,所有的视图都有一个layout_weight值,默认为零,意思是需要显示多大的视图就占据多大的屏幕空间...” android:layout_alignParentTop 控件的顶部与父控件的顶部对齐; android:layout_alignParentBottom 控件的底部与父控件的底部对齐; android...: android:layout_above=“@id/**” android:layout_above 控件的底部置于给定ID的控件之上; android:layout_below 控件的底部置于给定...:layout_alignBaseline 控件的baseline与给定ID的baseline对齐; android:layout_alignTop 控件的顶部边缘与给定ID的顶部边缘对齐; android

    2.1K40

    Android 底部按钮被软键盘顶起问题解决

    adjustResize 调整大小状态,这个属性表示 Activity 的主窗口总是会被调整大小来保证软键盘的显示空间。...一般来说,我们的布局分为两种 底部按钮被滚动布局包裹 底部按钮不被滚动布局包裹 第一种布局是不会出现软键盘把底部按钮顶起的情况,首先软键盘的打开实际上是一个 Dialog,而我们在配置文件内的 adjustResize...第二种情况通常为一个继续按钮始终处于页面的底部,中间的内容可以滚动,当根布局的内边距等于软键盘高度时,底部按钮就看起来像是被顶起。...,系统会通过布局的移动,来保证用户要进行输入的输入框在用户的视线范围内。...如果界面没有可滑动控件,显示效果和 adjustUnspecified 效果一样;如果界面有可滑动控件,在软键盘显示的时候,可能会有一些内容显示不出来。

    2.2K20

    双管齐下:同时设计 iOS 和 Anroid

    总体的样式 从 iOS7 以后,Apple 就一直在采用扁平化的设计模式,去除了所有不必要的纹理和阴影等效果——和早些年间的版本完全不同。...通用元素 两种平台之间的确存在着一些通用的元素,比如说状态栏和标题栏,它们会出现在每一屏的顶部。你不应当改变导航栏的高度,如果你想让 App 看起来更加原生的话。...然而,它们在创造不同的深度和其他细节方面有着一些不同。 Android 在动作表单上加了一层厚重的阴影,表明它是脱离于原先的内容的。...特殊数据输入 像特定的一些数据的输入,比如日期和时间,Android 现在有了原生的对话框,虽然它们看起来像是警告弹出框,一个例子是日历输入。...通常来说,警告框和表示载入的图标留给开发者做决定。你或许已经经历过弹出框和警告框的设计和 App 的其他部分样式完全脱节的情况。

    1.4K50

    《iOS Human Interface Guidelines》——Popover弹出框

    如果你在全屏显示的水平紧凑环境下显示弹出框,查看Modal View来获取其他全屏模态视图的指南。 不要提供“消除弹出框”的按钮。当弹出框的显示已经不必要的时候它应该自动关闭。...考虑下面的情节来确定何时弹出框是不必要的: 一般来说,当人们点击弹出框以外的区域时保存用户的工作。不是所有弹出框都要求明确的退出,所以人们可能错误地关闭了它。...弹出框会模糊其背后的内容,并且人们无法拖拽弹出框到别的位置。 确保同一时间只有一个弹出框在屏幕上。你不应该在同一时间显示超过一个弹出框(或者自定义的外观和行为类似弹出框的视图)。...特别是,你不应该同时显示一个谈出啊匡从另一个中出现的串联或层级的弹出框。 不要在弹出框的顶部显示模态视图。除了警告框,都不应该显示在弹出框的顶部。...注意系统可能调整弹出框的高度和宽度来让它适应屏幕。 在弹出框内使用标准UI控件和视图。一般来说,弹出框使用标准控件和视图的时候会看起来更好、更易于用户理解。 确保自定义的弹出框看起来像一个弹出框。

    67130

    当永恒的软键盘问题遇到Flutter

    从场景开始说起 我的场景是一个从底部弹出的 Dialog,Dialog 里主要就是一个 TextField 输入框。...解决思路 那么既然底部对话框里面有输入框的时候,resize布局和不resize布局都不合适的时候,那么就只能考虑调整对话框自己的位置了。...也就是,当键盘没弹出的时候,输入框在下面,键盘出来的时候,输入框在键盘的上方。底部对话框再怎么样,也不能被输入框顶到屏幕外面去吧。...Flutter 因为是响应式的布局开发,和 Android 这种命令式开发一个很大的区别就是基本避免直接操作一个 ui 的元素,这时候会遇到 2 个问题 如何获取宽高 build的时候元素还没渲染完毕,...这个就非常类似 Android 中的 View.post{} 了。

    3.7K30

    Figma技巧超全合集!40+隐藏技能!快收藏!(第一辑)

    或者,如果您快速按下两个键,它将采用这些键的值(例如,8 和 9 提供 89% 的不透明度。) 05.Control + Option + T 以特定方式对齐分散的元素。...06.组织整理:批量选择元素整理后,可以通过光标调整左右上下空间。此外,可以在不扰乱顺序/比例的情况下相互更换元件。 07.拖动+空格:如果要更改所选区域的位置,可以在选择区域后使用空格键。...所以你有一个最小的工作空间。您可以使用相同的组合键打开面板。 10.Cmd + |:此组合也仅隐藏左侧面板。您可以使用相同的组合再次打开它。 11.Cmd + G: 对选定元素进行分组。...单击左侧面板中元素旁边的图标,该元素将出现在画布上并居中。 18.Cmd+Option + S 添加版本历史。Figma 已经自动添加了版本历史。...Option + W:顶部对齐 Option + S:底部对齐 Option + Control + T:整理 Option + Control + V:分布垂直间距 Option + Control

    3K30

    终于等到你,新的虚拟键盘API 即将到来,快来先睹为快吧!

    浏览器将向上滚动以使输入框在键盘上方,因此粘性标题和浮动按钮将消失。 它看起来与以下内容相似: 这是移动浏览器中的默认行为。...浏览器支持 在撰写本文时,VirtualKeyboard API仅在Chrome for Android中受支持。在下一部分中,我将探讨一些例子和使用情况,以展示它的帮助性。...你可能会对由于标题和固定底部的存在而导致的空间减少感到困惑。我们可以使用垂直媒体查询来在垂直空间足够的情况下显示标题。...1rem 加上键盘的高度,以避免浮动按钮直接位于键盘顶部边缘。...请看下图: 帖子表单和导航固定在底部。当用户激活输入字段时,它会显示如下: 注意垂直空间太小。怎么办?通过混合比较功能和虚拟键盘API,我们可以在键盘显示时隐藏导航。

    37020

    Android开发之再探底部菜单TabLayout与Bottom navigation实现方式

    一、利用TabLayout来实现 TabLayout 我在Android开发之TabLayout实现顶部菜单一文中是用来做顶部菜单的。...确实,Google设计出来本意是做顶部菜单的,但是也可以作为底部菜单来使用。...> 其余地方不用变化,稍微修改一下底部菜单的个数就可以了,我这里就保留了4个,重复的代码我就不贴了,可以参考Android开发之TabLayout实现顶部菜单 效果图:...但是这种方式不太好定制指示器的位置,默认指示器在下方,按道理底部菜单的时候应该在上方。我看了很多stackoverflow上面同样的problem,试了都不太好使。...(Bottom navigation),真是千呼万唤始出来啊,因为Google 给出的设计规范之前一直所提倡的是导航栏等相关要素应置于视图顶部,苹果提倡在底部,这次不知怎么的,妥协了~然并卵,谷歌并没有提供对应的控件来实现

    1.5K40

    【Android从零单排系列三十四】《Android布局介绍——ConstraintLayout》

    二 ConstraintLayout使用方法 添加依赖:首先,在项目的build.gradle文件中,确保已经添加了ConstraintLayout库的依赖。...app:layout_constraintTop_toTopOf:将视图的顶部边与给定视图的顶部边对齐。...TextView 1被设置为位于父容器的顶部,并与父容器的左右边缘对齐。同时,它的底部边缘与TextView 2的顶部边缘对齐。...TextView 2位于TextView 1的底部,并与父容器的左右边缘对齐。同时,它的底部边缘与Button的顶部边缘对齐。 Button位于TextView 2的底部,并与父容器的左右边缘对齐。...同时,它的底部边缘与父容器的底部边缘对齐。 通过这样的约束条件,我们可以实现一种垂直排列的布局,其中TextView 1位于顶部,TextView 2位于其下方,Button位于最底部。

    45620
    领券