requestFocus这个方法是有延时的,android刷新时按照一定顺序,如果界面刷新未完成时,调用requestFocus是没有效果的。
Android加载刷新UI的时候,是从左到右,从上到下的顺序,正在加载的过程中,如果此时requestFocus(),的话,有可能此时还没把整个界面刷新好,导致requestFocus无效。
网上的通用方法,给editText.requestFocus()设置延时,测试有效
layChatSoftInput.postDelayed(new Runnable() {
@Override
public void run() {
layChatSoftInput.showSoftInput();
} }, 200);