问题标签 [android-orientation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
644 浏览

android - MapView 旋转/方向问题

我正在研究 MapActivity,在地图的顶部、底部和侧面有一些额外的字段。所有这些 View 组件都在一个 main.xml 文件中可用。对于这两个方向,我都有 layout-land 和 Portrait 目录,这两个文件夹都包含具有相同 ID 的 main.xml。

我在 androidManifest.xml 中使用了 android:ConfigChaneg,并且我覆盖了onConfigChange(Configuration newConfig)方法

但是现在当屏幕旋转/改变方向时出现异常。MapActivity 只能有一个 MapView如何解决这个问题,请指导我。

提前致谢....

0 投票
4 回答
6603 浏览

android - 为什么dismissDialog、removeDialog 或dialog.dismiss 在onDestroy 或onPause 中不起作用?

我一生都无法弄清楚如何在不使用 configChanges 来指定您要手动处理方向更改的情况下管理对话框。所以假设你有这个 AndroidManifest:

拿这个 MainActivity.java:

和这个布局(main.xml)

如果您从 onDestroy 或 onPause 调用似乎并不重要,对话框会在方向切换后重新显示。但为什么?我告诉它走开。如果调用 removeDialog/dismissDialog 在方向改变之前调用它什么也不做。我终其一生都无法弄清楚为什么会这样。我所知道的摆脱这种情况的唯一方法是自己处理方向变化,方法是使用

我知道新的工作方式是使用我尚未升级到的 FragmentDialog 的东西,并且还没有准备好为此重写我的整个应用程序。这不起作用似乎很奇怪。

这只是我在我的应用程序中遇到的一个真实世界问题的一个示例,用户可以请求从远程服务器中提取一些数据(以更新微调器的数据),如果他们切换方向,加载对话框将永远不会消失除了使用 android:configChanges 选项处理方向更改之外,似乎没有解决此问题的方法。我可以做到,但对我来说不得不这样做似乎很荒谬。

-- 更新 -- 删除了关闭对话框的按钮,因为它不是必需的,而且由于对话框位于顶部,因此无论如何您都无法单击它。

要重现只需启动应用程序,单击打开对话框的按钮,然后旋转手机。

0 投票
1 回答
195 浏览

android - 方向改变错误

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);在我的活动中使用。

如果我在活动之间进行更改,我的应用程序会在很短的时间内(例如大约 0.2 秒)变为横向模式。在 ladnscape 更改后,它会变回纵向,但这是一个非常烦人的错误。

为什么会这样?有没有更好的方法来限制应用程序仅使用 PORTRAIT 方向?

我不想要 0.2 秒的华丽方向变化。

0 投票
1 回答
774 浏览

android - 方向平板电脑与手机

所以我刚刚在三星平板电脑上测试了我一直在手机设备上测试的应用程序。

该应用程序根据加速器数据更新图形,我注意到在平板电脑上它将横向视为纵向......它在自然纵向模式设备上很好......

任何想法我可以如何调整它以便它适用于两者:

}

}

0 投票
1 回答
12862 浏览

android - VideoView & Fullscreen & Orientation changes - Android

我实现了一个嵌入了视频播放器的电子阅读器,我需要一个从播放器切换全屏模式的选项。

我的问题如下:

这是全屏播放视频并让用户从该状态返回到他之前正在阅读的页面并保持视频的当前时间的最佳方式。

我需要处理的另一个复杂情况是:

纵向和横向页面有不同的可视化,如果用户在纵向切换全屏并旋转设备,视频应该进入横向模式并重新调整视频以适应屏幕,但如果用户从这个页面返回,他应该再次返回纵向。

如果需要,我可以提供更多信息。提前致谢

0 投票
2 回答
364 浏览

android - 如何停止 android 表中的方向更改?

嗨,我正在开发平板电脑版本的 android 应用程序。在这里我面临方向问题,所以我只想让我的应用程序处于纵向模式。为此,我为我的应用程序中的每个活动使用了如下代码片段的属性。

在纵向模式下测试时,应用程序运行良好。但是在使用平板电脑物理位置和横向测试应用程序时并不好。它首先是横向,然后是纵向。

我以编程方式使用纵向制作活动,但没有效果。请给我任何帮助。这是我的程序化方向修复

我在 Motorolo 设备上测试过

请建议我避免我的应用程序进入横向。

0 投票
0 回答
1304 浏览

android - 片段、方向改变和片段后栈

我目前有一个由 ContentPane 和 ActionBarPane 组成的布局,每个都是Fragment.

每个 ContentPane 都Fragment使用 Factory 方法来实例化它自己的 ActionBarPane Fragment,这导致复杂ActionBar的一些非常简单和快速的开发。

虽然这工作得非常好,但我遇到了一个关于在方向更改后遍历 backstack 的错误。

我的“后退”实现如下所示:

其中,onBack()剥离了 ContentPane 和 ActionBar。

问题:当您达到Fragment Backstack4 个或更多(2 个 ContentPanes 及其 ActionBars)并更改方向 goBack(),第二个 ActionBar 仍然存在(第 3 个Fragment在 中Backstack)。

如预期的那样,如果没有方向更改,您最终会显示正确的 ActionBar ( Fragment1)。

记录显示,onBack()从 4Fragment秒开始Backstack,每个“pop”都被成功调用,最终只剩下 2 个Fragments(原始的 ContentPane 和它的 ActionBar)。

向前和向后导航正确使用原始的 ActionBar 而不是弹出的那个。

有没有人知道发生在方向变化上的附加片段的过程以及为什么这会导致这种奇怪的行为?

编辑

提供与以下内容同义的输出:

当出现正常行为以及出现不正确行为时,此输出是相同的......

0 投票
2 回答
773 浏览

android - 以地平线为轴确定设备的角度-android

我有一个有趣的问题。我正在尝试追踪用户手机的角度,无论他们是横向还是纵向或两者之间的任何位置..

我目前正在使用 SENSOR_ORIENTATION 并获得 YAW、ROLL 和 Pitch。我还尝试使用偏航来获取 zaxis 上用户视口的角度,并纠正用户滚动(横向、纵向或介于两者之间)我做了一些简单的数学运算..:

无论滚动位置如何,这段代码都会纠正偏航并给我正确的角度。
但这种数学似乎不适用于俯仰。如果我将手机垂直于地板,无论滚动或偏航,我希望始终获得 0 的俯仰角,如果我将手机的背面直接面向天空并平行于地面,我希望获得 90,回到地面-90;

这是我如何获得俯仰滚动和偏航:

目前我得到以下结果:

俯仰 = -90滚动 = 0

在此处输入图像描述

俯仰 = 0滚动 = 90 ;

在此处输入图像描述

俯仰 = 90滚动 = -20

在此处输入图像描述

俯仰 = 0滚动 = -90

我试图在这些位置中的任何一个位置获得 0 的音高,然后当用户在 HORIZON 轴上倾斜手机时分别获得 -90 和 90 之间的音高?

有任何想法吗?哦,我应该补充一点,我的应用程序被锁定为横向模式..

0 投票
2 回答
1973 浏览

android - 锁定屏幕方向

我正在制作一个允许您阅读维基百科页面的应用程序。

每次手机从纵向旋转到横向时,我都想显示一个图标,反之亦然。如果他愿意,它将让用户锁定屏幕方向,否则屏幕将根据传感器数据进行定向。这个功能是由google play中的一些App实现的,例如——Pocket

要做到这一点,我已经覆盖了

现在,如果我通过使用设置锁定配置(orientation_dir 是存储在共享首选项中的方向值,并且它是正确的,因为我已经通过代码进行了调试。)

然后方向设置正确,但是当手机旋转时不会调用 onConfigurationChanged() 方法。

如果我这样设置方向

然后未设置所需的方向。手机根据传感器数据重置方向。

我什至没有在方法中调用超级,因为我认为它可能设置错误,但它给了我异常“超级未调用”。

我正在尝试过去 2 天,但没有找到任何解决此问题的方法。

0 投票
2 回答
6036 浏览

android - 在 Android 中的方向更改之间保留数据的最佳方法

我的教育应用程序有一个包含 6 到 7 个选项卡的选项卡主机,支持横向和纵向模式。在与选项卡关联的每个活动中,我在列表视图中显示一些学生记录,一些复选框用于选择和一些评分栏、按钮等。我通过 Web 服务调用从远程服务器获取这些学生记录。由于某些原因,我的应用程序将在执行一些操作/搜索后显示一个带有一些按钮的初始相对布局它将在列表视图中显示结果,在单击列表视图中的列表项或按钮时,我将显示一些其他布局。这适用于选项卡主机中的所有活动。

如果用户改变方向,我必须恢复相同的状态或相同的屏幕,这意味着如果用户以前看到记录列表,我必须显示记录列表,如果初始我必须只显示初始。我不想强制停止 android 在方向更改或覆盖时破坏活动public Object onRetainNonConfigurationInstance ()。正如一些博客和 android 文档中所建议的那样,这些可能会导致以后的操作出现问题。我所做的只是保存所有必需的信息,例如哪个屏幕 1 或 2 或 3、文本视图标签和onSaveInstanceStateBundle 中的所有原始数据类型,并将它们恢复到onRestoreInstanceState. 此外,我正在将我的自定义搜索结果对象数组写入文件,并在 onSaveInstanceState 和 onRestoreInstanceStates 之间检索和删除它。由于我的搜索结果有 100 多个对象,并且我存储了大量的原始数据类型列表,当用户快速旋转设备时,堆大小会迅速增加。

处理它的最佳方法是什么

1)坚持onSaveInstanceState和onRestoreInstanceStates,这会使我的屏幕空白一段时间并增加堆大小,当用户多次旋转时不一定执行保存和恢复

2)将所有需要的数据保持为静态,因为它不是活动本地的,它不会破坏

3)通过扩展应用程序类来保留所有需要的数据?