ListView 和ScrollView共存问题(一)
来源:互联网 发布:电子章制作软件 编辑:程序博客网 时间:2024/06/02 06:59
解决共存问题间断的研究了一些时间,对于两个控件的属性熟悉是最重要的
目前存在这个问题,输入法能够正确的顶起listview,但是点击listview的一个item,整个列表就会自动的滚动到底部,一开始以为是listview自己更新了数据,后来发现其实就是listview的一个属性的问题,这个属性的代码中进行控制才可以正确的显示
一开始在adapter中设置,监听position然后发现到最后一个了,就设置listview的
if (position == getInfos().size()-1) {((HaomsgInfoActivity)context).lv_sms_list.setTranscriptMode(AbsListView.TRANSCRIPT_MODE_DISABLED);}这种情况显然不够完整,需要根据情况做这些处理,测试组提出问题后,就这块进行了重新处理,前提是少费事,少改动
是这么处理的:
if (scrollState== SCROLL_STATE_FLING) {lv_sms_list.setTranscriptMode(AbsListView.TRANSCRIPT_MODE_DISABLED);}
lv_sms_list.setOnScrollListener(new OnScrollListener() { //全部代码@Overridepublic void onScrollStateChanged(AbsListView view, int scrollState) {invokeInput();if (!noNeedLoad) { //检测如果不是向下滑动,而是向上滑动if (scrollState== SCROLL_STATE_FLING) { //滑动静止再去加载不然会执行多遍 2013-8-28 11:24 yang// 加载分页 ,不用状态锁的话可以考虑线程队列if (!isLoadingPage && view.getFirstVisiblePosition() == 0) {Log.v("aaa", "!isLoadingPage = "+!isLoadingPage);Log.v("aaa", "view.getFirstVisiblePosition() = "+view.getFirstVisiblePosition());if (view.getLastVisiblePosition() + 1 == view.getCount()) {// 末尾也在当前页则不用加载分页了,否则在select后末尾项看不全Log.v("aaa", "view.getLastVisiblePosition() + 1 = "+(view.getLastVisiblePosition() + 1));Log.v("aaa", "view.getCount() = "+view.getCount());} else{getNetMessage(type);getNewPageDate(currentIndex, pageSize,REFRESH_LISTVIEW_ADD_NEWPAGE);}}}}if (scrollState== SCROLL_STATE_FLING) {lv_sms_list.setTranscriptMode(AbsListView.TRANSCRIPT_MODE_DISABLED);}}
设置了的自动滚动属性之后,以后不管怎么改都不可以改过来,
=================================================
et_send_content.setOnFocusChangeListener(new OnFocusChangeListener() { //监听焦点变化也就是键盘的弹起@Overridepublic void onFocusChange(View v, boolean hasFocus) {if (hasFocus&&getInputManager().isActive()) {lv_sms_list.setTranscriptMode(AbsListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);adapter.notifyDataSetChanged();}}});
=================================================
et_send_content.setOnTouchListener(new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {if (event.getAction()==MotionEvent.ACTION_DOWN) {lv_sms_list.setTranscriptMode(AbsListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);}return false;}});这里是设置ListView的滑动属性为总是滑动,因为点击了输入框,键盘要被弹起来了,这个时候listView就要被滑动了
主题目的,1) listview滑动静止设置自动滚动属性为不可滑动 2)点击edit开始键入字符时listview自动被顶起
注意:监听焦点变化,不如监听点击(点击相应时间更早,比焦点更快的预处理)
- ListView 和ScrollView共存问题(一)
- listView和scrollview共存问题
- scrollview 和listview共存问题
- 关于Listview和ScrollView的共存问题
- 解决ListView和ScrollView共存问题
- 解决listView和scrollView的共存问题
- scrollview和listview共存
- android listview和scrollview共存
- Android 解决ListView 和 ScrollView 共存冲突的问题
- Android 解决ListView 和 ScrollView 共存冲突的问题
- Android 解决ListView 和 ScrollView 共存冲突的问题
- Android 解决ListView 和 ScrollView 共存冲突的问题
- Android 解决ListView 和 ScrollView 共存冲突的问题
- Android圆角ListView并完美解决和ScrollView共存问题
- Android 解决ListView 和 ScrollView 共存冲突的问题
- Android圆角ListView并完美解决和ScrollView共存问题
- Android 解决ListView 和 ScrollView 共存冲突的问题
- Android 解决ListView 和 ScrollView 共存冲突的问题
- vim的保存文件和退出命令
- 广州.NET培训之.NET开发中什么是三层架构
- mysql的介绍 其他数据库的简单介绍
- android智能指针学习
- Android 屏幕适配问题
- ListView 和ScrollView共存问题(一)
- Android之Service与IntentService的比较
- 几种任务调度的 Java 实现方法与比较
- iOS 国际化 本地化
- Java读取Excel内容
- main函数的两个参数
- Android USB Host的使用详解
- 最小公倍数
- OpenCv图像仿射变换