我遇到了以下问题,需要您的帮助来解决它。任何指导都将受到高度赞赏。
场景:我在表面视图的顶部有一个叠加视图,这个叠加视图有几个图像和一个按钮。我已经设定了#34;方向"标志着景观'在此活动的清单文件中,还编写了一个方向监听器,以识别横向左侧和横向右侧方向。
问题:当我打开辅助功能模式并且内容描述正确设置为小部件时,在我按下任何图像时,在初始模式(无论是向左还是向右),我都能正确听到辅助功能对讲。当我从左向右旋转设备方向时出现问题,反之亦然,即使正确旋转了叠加视图,也无法旋转辅助功能控件。当我以新的方向触摸图标时仍然打开辅助功能,我听不到TalkBalk文本。当我触摸覆盖图像在最后一个方向模式下绘制的图像位置时,我会听到对讲文本。
看起来显示/视图上的辅助功能区域已锁定,并且在从左到右旋转屏幕方向时,旋转叠加视图时不会旋转。
知道为什么会发生这种情况以及纠正它的方法吗?是唯一可以摧毁活动并再次创建的活动吗?我不能破坏表面视图,因为它会影响用户体验。如何旋转与图像关联的辅助功能TalkBack文本以及屏幕旋转?
在这个问题上花了几天时间。通过旋转它来尝试视图旋转,但这不是问题,因为视图已经旋转。请帮忙。
非常感谢您的帮助。
答案 0 :(得分:0)
我通过使用Android的原生功能解决了这个问题,而不是覆盖传感器方向处理程序并计算角度以找出左或右横向方向。只需在活动的onCreate()函数中使用以下代码
即可 if (Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
}
使用此解决方案,您可以仅在横向模式下以及在LEFT和RIGHT方向之间限制方向。该解决方案也适用于表面和覆盖层。