我的实际应用程序是在HID模式下使用蓝牙扫描仪,并在MainActivity的调度中捕获输入。它运行良好,除了屏幕变暗到某种深色不透明的颜色,看起来一切都被禁用了,您必须导航回一个具有输入控件的页面,然后点击它以使屏幕恢复正常。
在库存模板中并不那么明显,而是在我的实际应用程序(底部的屏幕屏幕镜头)中,调光非常明显。这是一个真正脱颖而出的蓝灰色不透明覆盖层。我不知道为什么会那样。如果我的实际应用像默认表单示例一样变暗,我几乎会很高兴。
步骤:
- 从模板之一制作Xamarin形式的应用程序。
- 什么都不改变。
- 运行模拟器。
- 按键盘上的按钮。
结果: 屏幕昏暗,软键盘不会弹出。
下一步:
- 添加一个条目控件。 <条目/>会做。
- 单击它,屏幕亮起。
- delete
- 按键盘上的键,软键盘弹出,屏幕不会再次变暗。
我想要什么:
- 知道设置昏暗/覆盖颜色/不透明度的位置,以便我可以更改它。
- 除非有焦点的入口字段,
- 除非有一个软键盘,
这是默认表单应用程序的屏幕截图:
不昏暗:
按下键盘后昏暗:
我的实际测试设备是三星Galaxy Xcover Pro运行Android 10.0。我正在努力将 native Xamarin Android应用程序移植到Forms上,以便我们也可以在iOS上运行它。我从未在Android应用程序上遇到过这个问题,我不确定如何追踪发生的事情。
这是图片之前。我有一个注重入门字段。
使用我的蓝牙扫描仪扫描条形码后,发生了:
XAML中没有定义任何覆盖层/模态盒 View 。叠加层是我添加的。尽管我似乎做了一些影响颜色的事情。我在styles.xml文件中看不到任何可以从默认的浅灰色更改颜色的文件(如示例xamrin forms模板中所示)。
我可以在“欢迎来到Xamaring形式的欢迎!”上用扫描仪复制此功能!同样,屏幕截图并没有真正显示覆盖颜色的变化。它更加微妙;我真的很想知道为什么在我的应用程序中,覆盖层更加明显。
最佳答案
我仍然对这种事发生感到恼火。但以防万一其他人使用 硬件键盘作为输入(或作为 HID 连接的 BT 扫描仪),并且您认为您会很喜欢并覆盖默认样式之一并使用漂亮的绿色强调色,如下所示:(尽管 StubbleOverlayColor 已更改为粉红色只是为了使当然我发现了这个问题) - 不要这样做。
<!-- Base theme applied regardless of API level -->
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorControlHighlight">@color/stupidOverlayColor</item>
</style>
这个故事的寓意是“colorControlHighlight”是邪恶的,不能被覆盖并与硬件键盘一起使用,除非您希望您的应用程序认为在扫描条形码后整个屏幕应该获得突出显示颜色,如下所示:
关于Xamarin Forms - 当不存在输入控件时,物理键盘会使页面变暗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69018865/