【问题标题】:Xamarin Forms - physical keyboard dims page when no input control is presentXamarin Forms - 不存在输入控件时,物理键盘会使页面变暗
【发布时间】:2021-09-01 18:22:45
【问题描述】:

我的实际应用程序在 HID 模式下使用蓝牙扫描仪并捕获 MainActivity 的 DispatchKeyEvent 上的输入。它工作得很好,除了屏幕变暗为一些不透明的暗色,看起来一切都被禁用了,你必须导航回一个带有输入控件的页面并点击它才能让屏幕恢复正常。

在股票模板中没有那么明显,但在我的实际应用中(底部的屏幕截图),变暗非常明显;这是一个真正突出的蓝灰色不透明覆盖层。我不知道为什么会这样。如果我的实际应用像默认表单示例一样变暗,我几乎会很高兴。

步骤:

  1. 使用其中一个模板制作 Xamarin Forms 应用。
  2. 什么都不做。
  3. 运行模拟器。
  4. 按键盘上的按钮。

结果: 屏幕变暗,软键盘不弹出。

接下来的步骤:

  1. 添加一个条目控件。 就可以了。
  2. 点击它,屏幕又变亮了。
  3. 删除
  4. 按键盘上的一个键,软键盘弹出,屏幕不再变暗。

我想要什么:

  1. 了解暗淡/叠加颜色/不透明度的设置位置,以便我进行更改。
  2. 除非有一个具有焦点的输入字段,否则根本不允许软键盘尝试弹出。

以下是默认表单应用的屏幕截图:

不暗淡:

按下键盘后变暗:

我的实际测试设备是运行 Android 10.0 的三星 Galaxy XCover Pro。我正在将原生 Xamarin Android 应用程序移植到 Forms,以便我们也可以在 iOS 上运行它。我的安卓应用从来没有遇到过这个问题,我不知道如何追踪发生了什么。

这是一张之前的照片。我有一个 Entry 字段。

用我的蓝牙扫描仪扫描条码后会发生这种情况:

XAML 中没有定义任何覆盖/模态框视图。叠加层不是我添加的。虽然我似乎做了一些事情来影响颜色;我在我的 styles.xml 文件中看不到任何会改变默认浅灰色颜色的内容(如示例 Xamrin Forms 模板中所示)。

我可以在“欢迎使用 Xamaring 表单!”上使用扫描仪重现此内容。同样,屏幕截图并没有真正显示覆盖颜色的变化;它更加微妙;我真的很想知道为什么在我的应用中,叠加层如此明显。

【问题讨论】:

  • 您的设备是什么版本?然后物理键盘在设备或外部设备下方?我尝试步骤。正常项目无法重现此问题。
  • 我使用的是运行 Android 9.0 的 Pixel 2 模拟器。键盘是连接到我的 PC 的物理键盘。
  • 这个问题是由于Enrty没有焦点或者最后一个焦点不在Entry上造成的。当您运行移动应用程序时,使用软键盘不会出现此问题。
  • 我使用蓝牙扫描仪添加了物理设备的屏幕截图。这是本机 Android Xamarin 应用程序的一个正在进行的端口,这从来不是问题。似乎列出的表单有问题。我真的需要知道如何调整出现的叠加层——至少调整不透明度。这不是我添加到我的 xaml 中的任何内容。

标签: xamarin xamarin.forms keyboard focus


【解决方案1】:

我仍然很生气它发生了。但以防万一其他人使用 硬件键盘作为输入(或作为 HID 连接的 BT 扫描仪),并且您认为自己会喜欢并覆盖其中一种默认样式并使用如下漂亮的绿色强调色:(尽管愚蠢的OverlayColor 已更改为粉红色只是为了确定我发现了问题) - 不要这样做。

<!-- Base theme applied regardless of API level -->
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorControlHighlight">@color/stupidOverlayColor</item>
</style>

这个故事的寓意是“colorControlHighlight”是邪恶的,不能被覆盖并与硬件键盘一起使用,除非您希望您的应用程序认为在您扫描这样的条形码后整个屏幕都应该获得突出显示颜色:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-22
    • 2017-09-13
    • 1970-01-01
    相关资源
    最近更新 更多