遇到这个问题是在设计一个Android程序的Ui的时候,当把EditText放在ListView中之后,就遇到了两个问题:

  1. 点击EditText,虽然弹出了软键盘,但是没有立刻获得输入焦点
  2. 输入完成之后,按回车或是返回键退出软键盘的时候,EditText框中的输入会被清空
    Google无果之后,只有自己研究,谁知这两个问题就花了我几个小时的测试。测试了Android v1.5~v2.1之后,发现原来这两个问题都和ListView的一个参数有关系,即只要没有把ListView的android:layout_height设置成“fill_parent”,就万事大吉。

这个限制没有丝毫道理,应该是ListView的一个讨厌的bug。

但是等一下,ListView是一个scroll container,如果item的个数较多,出现了滚动条,会不会有问题?应该是没有问题,这完全不搭嘎嘛!可惜事实不是这样的。如何避免这个问题,还需要再行研究。

Comments

2010-03-31