Android如何自动弹出软键盘?

Android如何自动弹出软键盘?

  • 方法1
  • 方法2
    • [步骤1 添加windowSoftInputMode属性](#步骤1 添加windowSoftInputMode属性)
    • [步骤2 请求textinput焦点](#步骤2 请求textinput焦点)

方法1

直接在resume中控制弹出。不过需要一定的延时提交,因为需要保证当前的窗口是正在被服务的窗口。

java 复制代码
@Override
protected void onResume() {
    super.onResume();
    // 显示软键盘
    textInputEditText.postDelayed(() -> {
        textInputEditText.requestFocus();
        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        if (imm != null) {
            imm.showSoftInput(textInputEditText, InputMethodManager.SHOW_IMPLICIT);
        }
    }, 500);
}

显示不成功的log:

java 复制代码
Ignoring showSoftInput() as view=com.google.android.material.textfield.TextInputEditText{5ecc3f4 VFED..CL. .F...... 0,0-1074,146 #7f0801c0 app:id/textview aid=1073741824} is not served.

方法2

系统自动管理输入法显示

步骤1 添加windowSoftInputMode属性

  • stateVisible: 当页面打开时,如果有焦点的输入框,自动显示输入法。
  • adjustResize:键盘弹出时,Activity 内容会自动上移避免被遮挡。
xml 复制代码
<activity android:name=".SearchActivity"
    android:windowSoftInputMode="stateVisible|adjustResize"/>

步骤2 请求textinput焦点

这个可以放在onCreate或onResume都可以。

java 复制代码
 textInputEditText.requestFocus();

或:

加上

xml 复制代码
<com.google.android.material.textfield.TextInputEditText
    android:id="@+id/textview"

    android:layout_marginTop="30dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="hint" >
    <requestFocus />  
</com.google.android.material.textfield.TextInputEditText>
相关推荐
HLC++15 小时前
Linux的进程间通信
android·linux·服务器
爱笑鱼18 小时前
Binder(二):AIDL 生成的 Proxy、Stub 和 Parcel 到底在做什么?
android
爱笑鱼19 小时前
Binder(一):一次方法调用,究竟怎样跨进程执行?
android
壮哥_icon19 小时前
【Android 系统开发】使用 BAT 脚本高效自动化管理 /system/priv-app/ 系统应用(安装与卸载)
android·运维·自动化
用户693717500138421 小时前
Claude Code终端日志Token占用实测:一个过滤器砍掉60%-90%
android·前端·后端
蝉蜕日记21 小时前
AccumuPDF高级版 v2.57 | 视图文转换PDF,合并分割压缩
android·智能手机·pdf·生活·软件需求
吐了啊取名字太难21 小时前
美颜系统AI修图本地跑并支持Mac、win、安卓、iOS不卡顿
android·人工智能·windows·数码相机·mac·ai编程
阿pin1 天前
Android随笔-Retrofit
android·retrofit
想取一个与众不同的名字好难1 天前
安卓自定义颜色选择器
android
我命由我123451 天前
Android 开发问题:java.lang.NoSuchMethodError:No virtual method readAllBytes()
android·java·java-ee·kotlin·android studio·android-studio·android runtime