在我的仪器测试中,我想在横向和纵向模式下测试一些东西,所以我想在测试开始之前设置方向。有没有办法以编程方式设置设备或模拟器方向?
我知道该setRequestedOrientation()
方法,但这适用于某个活动,如果启动另一个活动,我必须记住再次调用它。我正在寻找的是一种“全局”设置方向的方法,以便每个新活动都自动以该方向开始。
更新:
该解决方案必须满足 2 个要求:1)它不会让我更改我的生产代码,2)它需要在 CI 环境中运行。
在我的仪器测试中,我想在横向和纵向模式下测试一些东西,所以我想在测试开始之前设置方向。有没有办法以编程方式设置设备或模拟器方向?
我知道该setRequestedOrientation()
方法,但这适用于某个活动,如果启动另一个活动,我必须记住再次调用它。我正在寻找的是一种“全局”设置方向的方法,以便每个新活动都自动以该方向开始。
更新:
该解决方案必须满足 2 个要求:1)它不会让我更改我的生产代码,2)它需要在 CI 环境中运行。
这是我为简化此操作而创建的 ViewAction: https ://gist.github.com/nbarraille/03e8910dc1d415ed9740
用法在评论中描述。希望有帮助。
您可以通过创建自己的 AbtractActivity 类来为所有活动执行此操作。
public abstract class AbstractActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
现在你必须从这个类继承你所有的活动。
You can start two emulator simultaneously one in potrait mode and one in landscape mode. To change emulator orientation use ctrl + f12.