我的应用程序有一个活动,包含三个片段。在第一个(Frg1)和第三个(Frg3)片段中有listview。第二个片段(Frg2)具有一个editText。
启动Frg2时自动显示软键盘。这是正确的。
我尝试Frg2.on暂停此代码
@Override
public void onPause() {
super.onPause();
editText.post(new Runnable() {
@Override
public void run() {
editText.clearFocus();
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
});
}
当我启动Frg1或Frg2之后,Frg3软键盘隐藏,但渲染后再次显示Frg1 / Frg2键盘。
代码示例(在Frg3中):
@Override
public void onResume() {
super.onResume();
editText.requestFocus();
}
和
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
editText.post(new Runnable() {
@Override
public void run() {
imm.showSoftInput(editText, 0);
}
});
}
});
在Manifest.xml中
<activity android:name=".ContentActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize" >
可能是什么问题呢?
更新
我找到了解决方案
1.删除
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
editText.post(new Runnable() {
@Override
public void run() {
imm.showSoftInput(editText, 0);
}
});
}
});
2.添加
@Override
public void onResume() {
super.onResume();
editText.requestFocus();
imm.showSoftInput(editText, 0);
}
和
@Override
public void onPause() {
super.onPause();
View v = getActivity().getCurrentFocus();
if(v != null) {
v.clearFocus();
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
editText.clearFocus();
}
谢谢大家!
最佳答案
我找到了解决方案
1.删除
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
editText.post(new Runnable() {
@Override
public void run() {
imm.showSoftInput(editText, 0);
}
});
}
});
2.添加
@Override
public void onResume() {
super.onResume();
editText.requestFocus();
imm.showSoftInput(editText, 0);
}
3.添加
@Override
public void onPause() {
super.onPause();
View v = getActivity().getCurrentFocus();
if(v != null) {
v.clearFocus();
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
editText.clearFocus();
}
谢谢大家!
关于android - 软键盘不会隐藏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31241352/