LWUIT的List应用系列(三)解决List获得焦点时Form自动向下滚的Bug

在LWUIT应用中,当List获取焦点并显示大量数据时,Form滚动条会滚动到底部,这带来不便。本文提供两种解决方案:1. 设置Form不可滚动;2. 结合SelectionListener和FocusListener事件处理。通过代码示例说明了如何使用revalidate()方法实现界面重绘,以达到预期效果。
摘要由CSDN通过智能技术生成

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) {
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值