gpt4 book ai didi

android - 软键盘不隐藏

转载 作者:行者123 更新时间:2023-11-29 01:30:55 24 4
gpt4 key购买 nike

我的应用有一个包含三个 fragment 的 Activity 。第一个 (Frg1) 和第三个 (Frg3) fragment 中有 ListView 。第二个 fragment (Frg2) 有一个 editText。当我启动 Frg2 时自动显示软键盘。这是正确的。我试试 Frg2.onPause 这段代码

@Override
public void onPause() {
super.onPause();

editText.post(new Runnable() {
@Override
public void run() {
editText.clearFocus();
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
});
}

当我在 Frg3 软键盘隐藏后启动 Frg1 或 Frg2 但在渲染 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com