做项目的时候遇到了个这样的问题,有一个类似于微信对话界面的页面,当点击下面的文本框时弹出软键盘,这时需要将listview上移并滑动到最后一条,刚开始的解决办法是监听EditText的TextWatcher,在beforeTextChanged方法中队listview这样处理:
handler.postDelayed(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
chatListView.setSelection(lists.size()-1);
}
}, 300);
这个处理方式在大部分手机中都是ok的,但是在三星手机中文输入法时,beforeTextChanged这个方法不是点击键盘就能监听到,是必须点击输入的文字到EditText才可以监听到。还是有问题。
其实解决这个问题很简单,只需要设置listview的属性为 android:transcriptMode="normal",就能很好的解决。在此记录一下。