gpt4 book ai didi

android - IME 键盘不会自动出现在对话框中?

转载 作者:行者123 更新时间:2023-11-29 22:10:24 31 4
gpt4 key购买 nike

我正在使用 AlertDialog.Builder 创建一个对话框 fragment 。我希望它只有一个 EditText 来获取一些用户文本输入。它工作正常,但 IME 键盘不会在显示对话框后立即弹出。 EditText 已被选中,但用户必须再次点击 EditText 才能弹出 IME 键盘:

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

EditText input = new EditText(getActivity());
return new AlertDialog.Builder(getActivity())
.setView(input)
.create();
}

它不应该立即自行弹出吗?

谢谢

最佳答案

不,显然这不是默认行为。如果您真的希望键盘自动出现,请在 EditText 中模拟“点击” ,这对我有用(这比调用 showSoftInput 更安全,因为 requestFocus 的行为不可靠,而且您不需要对键盘进行微观管理):

EditText tv = (EditText)findViewById(R.id.editText);
tv.post(new Runnable() {

@Override
public void run() {
Log.d("RUN", "requesting focus in runnable");
tv.requestFocusFromTouch();
tv.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN , tv.getWidth(), tv.getHeight(), 0));
tv.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP , tv.getWidth(), tv.getHeight(), 0));
}
});

我认为键盘无法打开的原因是用户在决定首先从哪里开始编辑之前必须有机会看到整个窗口。

关于android - IME 键盘不会自动出现在对话框中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9778674/

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