Android设置ListView滚动到某一位置
最近在做项目的时候有一个功能就是点击某个按钮的时候要当前页面停留在某一个固定的位置,而当前页面只有一个ListView,如果是ScrollView,那么相信就会简单很多了,直接调用ScrollView.scrollTo(x,y);或者ScrollView.smoothScrollTo(x,y);这两个方法中的一个,然后给与指定的y值就OK,但是如果是ListView呢,原理是差不多的,这里也有两个方法
setSelection()和setSelectionFromTop()。
如果你要停留在当前第5个item的位置,也就是让第五个item置顶,那么直接listView.setSelection(5)就OK了,但是如果我要停留在更精准的位置上那么就要调用setSelectionFromTop()这个方法了,比如我要停留在第4个和第五个item正中间位置,那么假设第四个item的高度是100px,那么直接listView.setSelectionFromTop(5,50)就OK了.
解释一下这两个方法的原理:setSelectionFromTop()的作用是设置ListView选中的位置,同时在Y轴设置一个偏移量。
而setSelection()方法,传入一个index整型数值,就可以让ListView定位到指定Item的位置。
添加一个List1和一个Command1到Form1上,添加以下代码。运行后按Command1按钮看看是不是你想要的效果
/** Save the position **/
int currentPosition = listView.getFirstVisiblePosition();
//Here u should save the currentPosition anywhere
/** Restore the previus saved position **/
listView.setSelection(savedPosition);
当然,也可以使用这个方法:
// save index and top position
int index = mList.getFirstVisiblePosition();
View v = mList.getChildAt(0);
int top = (v == null) ? 0 : v.getTop();
// ...
// restore
mList.setSelectionFromTop(index, top);
用InputMethodManager类自由控制输入法的显示与隐藏
//显示输入法
InputMethodManager mImm = (InputMethodManager) ActivityDetailsActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE);
mEtMessage.requestFocus();//获取焦点
mImm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);//弹出键盘
//隐藏输入法
mEtMessage.clearFocus();
mImm.hideSoftInputFromWindow(mEtMessage.getWindowToken(), 0);
今天在做项目的时候要做到拍照的功能,当时就在想onResume和onActivityResult这两个方法谁会先执行呢,就测试了一下,打印一下当时的System.currentTimeMillis()看一下执行先后的顺序。
打印onResume:
@Override
protected void onResume() {
super.onResume();
Log.i("打印onResume====", System.currentTimeMillis()+"");
}
打印onActivityResult:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.i("打印onActivityResult====", System.currentTimeMillis()+"");
}
输出结果:
打印onActivityResult====: 1474678061478
打印onResume====: 1474678061864
ScrollView回顶部我们有一句话就可以实现在Android设置ScrollView回到顶部的方法有好几种了,这里我们就一起来了解一下吧。
例子
ScrollView.scrollTo(0,0);//直接置顶,瞬间回到顶部,没有滚动过程,其中Y值可以设置为大于0的值,使Scrollview停在指定位置。
ScrollView.fullScroll(View.FOCUS_UP);//类似于手动拖回顶部,有滚动过程
ScrollView.smoothScrollTo(0, 0);//类似于手动拖回顶部,有滚动过程,其中Y值可以设置为大于0的值,使Scrollview停在指定位置。
例子
String type = itemList.get(position).type;
if(type.equals(Constants.ARTICLE)){
findViewById(R.id.article_scrollview).scrollTo(10, 10);
}else{
ScrollView scrollView = (ScrollView) findViewById(R.id.gallery_scrollview);
if(scrollView != null)
scrollView.scrollTo(10, 10);
}
重点是scrollTo(10, 10)部分,就可以实现ScrollView滚回顶部。
相关文章
- 下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
Android开发中findViewById()函数用法与简化
findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20- 如果我们的项目需要做来电及短信的功能,那么我们就得在Android模拟器开发这些功能,本来就来告诉我们如何在Android模拟器上模拟来电及来短信的功能。 在Android模拟...2016-09-20
- 夜神android模拟器如何设置代理呢?对于这个问题其实操作起来是非常的简单,下面小编来为各位详细介绍夜神android模拟器设置代理的方法,希望例子能够帮助到各位。 app...2016-09-20
- 这篇文章主要介绍了如何使用JavaScript实现“无缝滚动 自动播放”轮播图效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-08-20
- 为了增强android应用的用户体验,我们可以在一些Button按钮上自定义动态的设置一些样式,比如交互时改变字体、颜色、背景图等。 今天来看一个通过重写Button来动态实...2016-09-20
- 如果我们要在Android应用APP中加载html5页面,我们可以使用WebView,本文我们分享两个WebView加载html5页面实例应用。 实例一:WebView加载html5实现炫酷引导页面大多...2016-09-20
- 深入理解Android中View和ViewGroup从组成架构上看,似乎ViewGroup在View之上,View需要继承ViewGroup,但实际上不是这样的。View是基类,ViewGroup是它的子类。本教程我们深...2016-09-20
- 下面我们来看一篇关于Android自定义WebView网络视频播放控件开发例子,这个文章写得非常的不错下面给各位共享一下吧。 因为业务需要,以下代码均以Youtube网站在线视...2016-10-02
- java开发的Android应用,性能一直是一个大问题,,或许是Java语言本身比较消耗内存。本文我们来谈谈Android 性能优化之MemoryFile文件读写。 Android匿名共享内存对外A...2016-09-20
- TextView默认是横着显示了,今天我们一起来看看Android设置TextView竖着显示如何来实现吧,今天我们就一起来看看操作细节,具体的如下所示。 在开发Android程序的时候,...2016-10-02
android.os.BinderProxy cannot be cast to com解决办法
本文章来给大家介绍关于android.os.BinderProxy cannot be cast to com解决办法,希望此文章对各位有帮助呀。 Android在绑定服务的时候出现java.lang.ClassCastExc...2016-09-20- 这篇文章主要介绍了Android 实现钉钉自动打卡功能的步骤,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下...2021-03-15
- 下面我们来看一篇关于Android 开发之布局细节对比:RTL模式 ,希望这篇文章对各位同学会带来帮助,具体的细节如下介绍。 前言 讲真,好久没写博客了,2016都过了一半了,赶紧...2016-10-02
- 这篇文章主要介绍了js实现文字垂直滚动和鼠标悬停效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-01-05
- 这篇文章主要为大家详细介绍了使用jQuery.Pin垂直滚动时固定导航的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-05-27
- 这篇文章主要介绍了C#实现带进度条的ListView 的相关资料,需要的朋友可以参考下...2020-06-25
- 首先如果要在程序中使用sdcard进行存储,我们必须要在AndroidManifset.xml文件进行下面的权限设置: 在AndroidManifest.xml中加入访问SDCard的权限如下: <!--...2016-09-20
- 下面来给各位简单的介绍一下关于Android开发之PhoneGap打包及错误解决办法,希望碰到此类问题的同学可进入参考一下哦。 在我安装、配置好PhoneGap项目的所有依赖...2016-09-20
- 下面小编就为大家带来一篇JS实现图片的不间断连续滚动的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-06-12