当前位置: 代码网 > it编程>App开发>Android > Android 扫码枪输入时屏蔽软键盘和顶部状态栏的解决方案

Android 扫码枪输入时屏蔽软键盘和顶部状态栏的解决方案

2024年11月03日 Android 我要评论
这是个扫码枪回车输入扫码内容的界面,常用于收银收款等场景前期踩了很多坑,网上的资料也因为 android 历史版本不同有各种兼容问题,最后总结了下在无霸屏设置的 android 设备上使用如下方案可有

这是个扫码枪回车输入扫码内容的界面,常用于收银收款等场景
前期踩了很多坑,网上的资料也因为 android 历史版本不同有各种兼容问题,最后总结了下
在无霸屏设置的 android 设备上使用如下方案可有效避免界面弹出软键盘和显示顶部状态栏问题,环境为 android 7.1.2
屏蔽软键盘:自动聚焦 的 inputtype 设置为 none
隐藏顶部状态:方案一 hidestatusbar 必须在 setcontentview 之前,方案二在 styles 中设置 noactionbar 具体可自行搜索

  • androidmanifest.xml
<activity
    android:name=".myactivity"
    android:windowsoftinputmode="statehidden"
    android:exported="false" />
  • activity_my.xml
<edittext
    android:id="@+id/scaninput"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:focusable="true"
    android:focusableintouchmode="true"
    android:focusedbydefault="true"
    android:importantforautofill="no"
    android:inputtype="none" />
  • myactivity.kt
class myactivity : appcompatactivity() {
    private lateinit var binding: activitymybinding
    override fun oncreate(savedinstancestate: bundle?) {
        super.oncreate(savedinstancestate)
        binding = activitymybinding.inflate(layoutinflater)
        hidestatusbar()
        setcontentview(binding.root)
        hidesoftkeyboard()
    }
    override fun onresume() {
        super.onresume()
        hidesoftkeyboard()
        hideactionbar()
    }
    private fun hidesoftkeyboard() {
        window.setsoftinputmode(windowmanager.layoutparams.soft_input_state_hidden)
        this.currentfocus?.let { view ->
            val imm = getsystemservice(context.input_method_service) as? inputmethodmanager
            imm?.hidesoftinputfromwindow(view.windowtoken, inputmethodmanager.result_hidden)
        }
    }
    private fun hidestatusbar() {
        requestwindowfeature(window.feature_no_title);
        window.setflags(
            windowmanager.layoutparams.flag_fullscreen,
            windowmanager.layoutparams.flag_fullscreen
        )
    }
    private fun hideactionbar() {
        window.decorview.systemuivisibility = view.system_ui_flag_fullscreen
        actionbar?.hide()
    }
}

到此这篇关于android 扫码枪输入时屏蔽软键盘和顶部状态栏的文章就介绍到这了,更多相关android屏蔽软键盘和顶部状态栏内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com