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

 更新时间:2024年10月12日 08:53:30   作者:huelse  
在Android设备上,使用扫码枪时常遇到软键盘和顶部状态栏显示问题,本文介绍了在Android 7.1.2版本上,如何通过设置inputType为none屏蔽软键盘,以及通过hideStatusBar和NoActionBar方法隐藏顶部状态栏,以优化扫码枪使用界面,这些方法有助于提升使用扫码枪场景的用户体验

这是个扫码枪回车输入扫码内容的界面,常用于收银收款等场景
前期踩了很多坑,网上的资料也因为 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屏蔽软键盘和顶部状态栏内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅谈Android onTouchEvent 与 onInterceptTouchEvent的区别详解

    浅谈Android onTouchEvent 与 onInterceptTouchEvent的区别详解

    本篇文章小编为大家介绍,Android onTouchEvent 与 onInterceptTouchEvent的区别详解。需要的朋友参考下
    2013-04-04
  • 浅谈android中数据库的拷贝

    浅谈android中数据库的拷贝

    下面小编就为大家带来一篇浅谈android中数据库的拷贝。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Android聊天工具基于socket实现

    Android聊天工具基于socket实现

    这篇文章主要介绍了基于socket实现的一个简单的Android聊天工具,实现方法简单,具有一定的参考价值,感兴趣的朋友可以参考一下
    2016-02-02
  • Android 滚动时间选择的示例代码

    Android 滚动时间选择的示例代码

    这篇文章主要介绍了Android 滚动时间选择的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Android WindowManger实现桌面悬浮窗功能

    Android WindowManger实现桌面悬浮窗功能

    这篇文章主要介绍了Android WindowManger实现桌面悬浮窗功能,他们基本都是在Activity之上显示的,如果想实现在桌面显示的悬浮窗效果,需要用到WindowManager来实现了,需要的朋友可以参考下
    2023-04-04
  • Android webview拦截H5的接口请求并返回处理好的数据代码示例

    Android webview拦截H5的接口请求并返回处理好的数据代码示例

    这篇文章主要给大家介绍了关于Android webview拦截H5的接口请求并返回处理好的数据的相关资料,通过WebView的shouldInterceptRequest方法,Android可以拦截并处理WebView中的H5网络请求,需要的朋友可以参考下
    2024-10-10
  • Android实现透明度可变的标题栏效果

    Android实现透明度可变的标题栏效果

    这篇文章主要介绍了Android实现透明度可变的标题栏效果的相关资料,具有一定的参考价值,需要的朋友可以参考下
    2016-02-02
  • android 二次打包完成apk多渠道打包的方法

    android 二次打包完成apk多渠道打包的方法

    本篇文章主要介绍了android 二次打包完成apk多渠道打包的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Android软键盘状态弹出与消失的示例

    Android软键盘状态弹出与消失的示例

    这篇文章主要介绍了本篇文章主要介绍了Android软键盘状态弹出与消失的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Android 实现秒转换成时分秒的方法

    Android 实现秒转换成时分秒的方法

    这篇文章主要介绍了Android 实现秒转换成时分秒的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05

最新评论