三星手机自带的输入法与搜狗输入法不同,搜狗输入法高度是固定的,但是三星输入法在输入中文 的时候高度会随着变化,这样导致在Adapter中会重复调用getView,导致Edittext失去焦点,解决办法:
记录触摸的EditText的位置:
<span style="font-size:14px;"><span style="white-space:pre"> </span>viewHolder.etContent.setOnTouchListener(new OnTouchListener()
{
public boolean onTouch(View view, MotionEvent event)
{
// 在TOUCH的UP事件中,要保存当前的行下标,因为弹出软键盘后,整个画面会被重画
// 在getView方法的最后,要根据index和当前的行下标手动为EditText设置焦点
if (event.getAction() == MotionEvent.ACTION_UP)
{
index = position;
AppLog.redLog("img", "index--1->"+index+",position====1==="+position);
}
return false;
}
});</span>
span style="white-space:pre"> </span>判断记录的位置和当前的位置是否一致来获取焦点</span>
<span style="font-size:14px;"><span style="white-space:pre"> </span>viewHolder.etContent.clearFocus();
if (index != -1 && index == position)
{
// 如果当前的行下标和点击事件中保存的index一致,手动为EditText设置焦点。
viewHolder.etContent.requestFocus();
}
</span>