安卓用户界面 : No focus marker when using hardware keyboard/barcode scanner

标签 android focus

目前我正在开发一个使用条形码阅读器扫描条形码的应用程序。条形码阅读器被android识别为硬件键盘。效果很好,我可以读取条形码。但是,当我阅读条形码时,AppBar 中的 Hamburger 会获得焦点(请参见屏幕截图)。 我怎样才能摆脱那个焦点标记?我试图将焦点设置到另一个控件,但这不起作用。是否可以覆盖焦点标记的样式?

截图:http://postimg.org/image/7zmzzhstx/

最佳答案

再次解决该问题后,我找到了适合我的解决方案。也许这可以帮助其他人:

在我的 Activity 中,我覆盖了 public boolean dispatchKeyEvent(KeyEvent event) 方法来处理来自条形码扫描仪的输入。我现在添加了以下代码行:

containerContent.requestFocus();

containerContent 控件只是一个 FrameLayout,其中托管了我的 fragment 。在发布此问题之前,我已经尝试过了。但它不起作用,因为“不允许”FrameLayout 请求焦点。现在我也修改了我的布局 xml:

<FrameLayout
    android:id="@+id/containerMain"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:focusable="true"
    android:focusableInTouchMode="true">
</FrameLayout>

添加了 android:focusable="true"android:focusableInTouchMode="true" 现在它可以工作了!

关于安卓用户界面 : No focus marker when using hardware keyboard/barcode scanner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36126504/

相关文章:

C#:如何取消选择和散焦文本框?

vb.net - 在DataGridView中获取行号

delphi - 组合框 - 键入选择,然后单击焦点外 - 不会选择键入的项目

java - 运行我的java代码时得到 "Program has stopped "

android - 在 ListView 性能中加载联系人照片

android - 使用 DataBinding 的 <include> 标记的 java.lang.ClassCastException

javascript - 如何检查浏览器窗口是否处于事件状态?

android.support.constraint.ConstraintLayout 无法转换为 android.widget.RelativeLayout

安卓密码哈希

java - 如何更改聚焦 JComboBox 的突出显示颜色