困ったこと
Andsroid3.6+から、AndsroidManifestファイル内で下記のように、Activityの向きを固定に指定しているとワーニングが出るようになりました。これは、Googleより「ユーザの(画面の向きを変えれる)選択肢を狭めないように横向きにもアプリを対応させましょうね。」というメッセージなわけでございます。
対処法① アプリを横向き対応する
ユーザの利便性を追求するのであれば横向きもサポートするほうが良いのは当然です。
なお、ワーニングの指示通り下記のどちらかを指定すれば消えます。
<activity
android:screenOrientation="fullSensor"
android:screenOrientation="unspecified"
/>
パラメータ名 | 説明 |
---|---|
unspecified | デフォルト値。システムが画面の向きを選択します。システムが使用するポリシー、つまり特定の状況における選択は、端末により異なる場合があります。 |
fullSensor | 画面の向きは、端末の方向センサーによって決まり、4 つの画面の向きすべてを使用できます。これは "sensor" と似ていますが、端末の通常の動作にかかわらず、4 つの画面の向きすべてを使用できる点が異なります(たとえば、一部の端末では通常、反対の縦向きや反対の横向きは使用しませんが、それらの向きも有効になります)。API レベル 9 で追加。 |
対処法② とりあえず見えなくしたい
applicationタグ、もしくは無視したい個別のActivityタグにtools:ignore="LockedOrientationActivity"
を追加しましょう。
これでワーニングは見えなくなります。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="jp.co.xxxxx.xxxxx">
<application
android:name=".App"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:ignore="LockedOrientationActivity" <- ここだと全体に
>
...
<activity
android:name=".view.main.MainActivity"
android:label="@string/title_activity_main"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity" <- ここだと個別のActivityに
/>
</application>
...
</manifest>
対処法③ 無視する
一応これでもビルドは通ります。
ワーニングが気にならない人、後ほど直すからとりあえずワーニングだけは出しておきたい人、はそのままで良いでしょう。
参照