在ListView中使用EditText,会看到在点击EditText的时候,EditText会多次获取和失去焦点。这是因为点击EditText的时候,EditText或获取一次焦点,弹出软键盘后软键盘抢占焦点,那么EditText就失去焦点。在一次点击EditText的时候,EditText重新获取焦点。输入内容时,键盘按键获取焦点,EditText再一次失去了焦点。
解决方法是在配置文件中对应的Activity添加属性
android:windowSoftInputMode=”adjustPan”。
看看其它值得含义
【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置
【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
【C】stateHidden:用户选择activity时,软键盘总是被隐藏,(直到当该Activity主窗口获取焦点时)
【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的
【E】stateVisible:软键盘通常是可见的
【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态
【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示
【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间
【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分