一、Android 控制ScrollView滚动到底部
在开发中,我们经常需要更新列表,并将列表拉倒最底部,比如发表微博,聊天界面等等,
这里有两种办法,第一种,使用scrollTo():
public static void scrollToBottom(final View scroll, final View inner) { Handler mHandler = new Handler(); mHandler.post(new Runnable() { public void run() { if (scroll == null || inner == null) { return; } int offset = inner.getMeasuredHeight() - scroll.getHeight(); if (offset < 0) { offset = 0; } scroll.scrollTo(0, offset); } }); }
第一种实现相对比较麻烦,更推荐使用第二种方式,使用fullScrol()
下面我们看一下这个函数:
需要注意的是:该方法不能直接被调用
因为Android很多函数都是基于消息队列来同步,所以需要一部操作,addView完之后,不等于马上就会显示,而是在队列中等待处理,虽然很快,但是如果立即调用fullScroll, view可能还没有显示出来,所以会失败
应该通过handler在新线程中更新
handler.post(new Runnable() { @Override public void run() { scrollView.fullScroll(ScrollView.FOCUS_DOWN); } });
二、禁止ScrollView自动滑动到底部
但有的时候能我们又需要禁止ScrollView自动滑动到底部,以下是解决方法:
具体表现
ScrollView 嵌套 GridView 、ListView等类似的控件时,当从网络上获取数据时刷新界面,此事发生的情况是: ScrollView 自动滑到屏幕的最低端,具体来说时滑动展示数据最后一条的位置,如果此时进行下拉刷新,也会出现布局显示不合理的状况。
为何如此
childView 有获取焦点的能力
由于该 childView 超过屏幕大小,并且有获取焦点的能力,所以造成了该问题。由于不能改变其大小,只能阻止其获取焦点。基本思路有,取消它获取焦点的能力,让ScrovView截获它的焦点等。
如何解决
让 childView 的焦点被截获
具体方案
ScrollView 下的 LinearLayout 中加了android:descendantFocusability="blocksDescendants"
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对小牛知识库的支持。
本文向大家介绍Android开发控制ScrollView滑动速度的方法,包括了Android开发控制ScrollView滑动速度的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android开发控制ScrollView滑动速度的方法。分享给大家供大家参考,具体如下: 前言 由于各个Android平板触摸屏的材质不一样,滑动效果会有一些区别,有的比较灵敏,有的比较迟钝,这里就遇到了要求
本文向大家介绍Android viewpage实现可控制的禁止滑动,包括了Android viewpage实现可控制的禁止滑动的使用技巧和注意事项,需要的朋友参考一下 Android编程常常使用ViewPager结合Fragment实现可以左右滑动切换的页面,但有时会遇到这样的需求,让ViewPager根据特定条件来控制其是否滑动。 实现思路:重写ViewPager,覆盖 onTouchEvent
本文向大家介绍android scrollview 自动滚动到顶部或者底部的实例,包括了android scrollview 自动滚动到顶部或者底部的实例的使用技巧和注意事项,需要的朋友参考一下 android scrollview 自动滚动到顶部或者底部 摘要: android scrollview 自动滚动到顶部或者底部 android scrollview 自动滚动到顶部或者底部 还有一种
如何在android应用程序中使用滑动滚动至底部?我试着用 但上述情况并没有起到任何作用。有人能给我推荐一些通用的解决方案吗?
本文向大家介绍Android中Viewpager禁止滑动的实现,包括了Android中Viewpager禁止滑动的实现的使用技巧和注意事项,需要的朋友参考一下 前言 现在很多app,首页不允许滑动切换(因为页面加载吧),但是又用viewpage来管理frgament.因为方便嘛. 以前在网上找的例子: 这个自定义如果继承的Viewpager是低版本的,那么是没问题的. 但是如果你编译时用是高版本的
本文向大家介绍Android中判断listview是否滑动到顶部和底部的实现方法,包括了Android中判断listview是否滑动到顶部和底部的实现方法的使用技巧和注意事项,需要的朋友参考一下 今天实现listview的下拉刷新和上拉加载的时候,遇到了一个问题,*就是说需要根据listview中滑动的位置来进行下拉刷新和上拉加载。* 具体点,只有当我的listview滑动到最顶部的时候,这时候下