LWUIT的List应用系列(三)解决List获得焦点时Form自动向下滚的Bug
来源:互联网 发布:易语言进销存管理源码 编辑:程序博客网 时间:2024/05/19 14:00
在LWUIT的List应用系列(二)中我们知道了怎么绑定数据,怎么做相应的事件。注意,我只做了ActionListener事件,而SelectionListener事件和FocusListener事件没做,这是我在这一节中要用到的。
首先看看我在哪个地方需要用到它,我们在用List显示比较多的数据的时候,不知道你们有没有发现一个让人很不爽的效果:当List(List的第一项)获得焦点时,如果数据很长,Form的滚动条会直接滚动到底部,对于这种情况我找到了两种解决办法。
方法1:
这种方法最直接最简单,既然羊毛出在羊身上(滚动条是Form的),那我们就直接设置Form不可滚动。
方法2:
我的山寨方法,同时使用SelectionListener事件和FocusListener事件。
代码:
personList.addFocusListener(new FocusListener() { public void focusGained(Component c) { if (personList.getSelectedIndex() == 0) { ListForm.this.setScrollable(false); //注释掉这一句,让Form不进行验证,使滚动条仍然存在 //ContactsForm.this.revalidate(); } } public void focusLost(Component c) { ListForm.this.setScrollable(true); } }); personList.addSelectionListener(new SelectionListener() { public void selectionChanged(int oldSelection, int newSelection) { //当选中的不是第一项时,重新设置Form可滚动。 if (oldSelection > 0) { ListForm.this.setScrollable(true); ListForm.this.revalidate(); } } });
注意revalidate()方法,这个方法的作用是让界面重新验证,就是重绘的意思(repaint)。这个方法在某些场合非常有用,比如你想删除某些组件,可以调用removeComponent()方法,但是必须调用revalidate()方法,使页面重绘,否则你仍然能看到这个组件。当然你若想局部刷新某个组件的内容,可以通过remove – revalidate – add - revalidate的步骤来实现。
- LWUIT的List应用系列(三)解决List获得焦点时Form自动向下滚的Bug
- LWUIT的List应用系列(一)List基础
- LWUIT的List运用系列(五)
- LWUIT的List应用系列(二)List事件的处理
- LWUIT的List运用系列目录,共七篇
- LWUIT的List运用系列(六) List的终极使用(上篇)
- LWUIT的List运用系列(七) List的终极运用(下篇)
- LWUIT的List运用系列(四) List动态加载数据
- Dialog上的List Control获得焦点时,窗口切换后不显示
- J2ME GUI实战之八 ----------LWUIT的List控件
- 【问题记录】解决,打开app时,EditView的自动获得焦点,并且软键盘弹出
- SAP LIST 画框的FORM
- 自定义list分页控件(lwuit)
- lwuit list开发
- lwuit-List控件使用
- 【BUG解决】Android ListView只加载当前屏幕内的图片(解决list滑动时加载卡顿)
- 解决魅族layer-list中图片拉伸的bug
- (专业写BUG系列)Foreach的只读性和List<T>的引用传递
- Qt Creator生成的.exe文件运行缺少.dll文件解决
- 第2章链路层
- Web开发者必备的64个免费在线工具
- 弗洛伊德:《梦的解析》
- ibatis DAO 事务探索
- LWUIT的List应用系列(三)解决List获得焦点时Form自动向下滚的Bug
- 内存映射文件
- 安装 Qt Creator
- QT Creator 介绍
- [CSS]分享几条漂亮的下划线样式
- oracle xe装好后sqlplus后提示command not found
- 环境变量的配置
- 2009.12.10笔记
- sqlserver2000中,excel表格中电话号码导入为null值的解决方案!