0

Androidの向きのシフトの単体テストに関する問題があります。アプリケーションでポートレートとランドスケープの両方がサポートされており、向きが変わったときにビュー階層が正しく描画されるかどうかをテストする必要があります。

これを確認するために 2 つのテスト メソッドを作成しました。次のようなものがあります。

public void testOnCreate() throws Exception {
    //Check all the activity components
    assertNotNull(activity);
    assertNotNull(application);

    //Check if the rights components are available on the screen
    assertNotNull(LayoutInflater.from(activity));
    activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    testOrientationPortrait();
}

この特定のケースでは、テストに合格し、ビュー階層が正しく描画されます。しかし、次を使用してランドスケープをテストしようとすると:

public void testOrientationChange() throws Exception {
    assertNotNull(activity);
    activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    //Check if the rights components are available on the screen
    assertNotNull(LayoutInflater.from(activity));
    testOrientationLandscape();
}

方向は変わりますが、ビューには縦向きの属性があるため、ビューの階層は失敗します。

これを修正する方法はありますか?

ありがとう、アーク

4

1 に答える 1

2

このメソッドをオーバーライドし、メソッドで変更を行います。

@Override
 public void onConfigurationChanged(Configuration newConfig) {
  // TODO Auto-generated method stub
  super.onConfigurationChanged(newConfig);


 }

追加することを忘れないでください

 <activity

        android:configChanges="orientation"
        >
    </activity>

あなたのメニフェストで。

これは、向きを確認するためだけに使用できます。getResources().getConfiguration().orientation

于 2013-01-28T13:27:49.927 に答える