Androidアプリの一部のビューでランドスケープモードを無効にするにはどうすればいいですか?
AndroidManifest.xml内のアクティビティに、android:screenOrientation="portrait"
を追加します。例えば、以下のようになります。
<activity android:name=".SomeActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" />
EDIT: これは非常に人気のある回答になっているので、私は非常に罪悪感を感じています。なぜなら、強制ポートレートは、頻繁に適用される問題に対して正しい解決策であることはほとんどないからです。 強制ポートレートの主な注意点です。
また
アプリの回転以外にも、アクティビティの破壊/再生を引き起こす可能性のある
アプリの回転以外にも、マルチタスクのように避けられないものも含めて、アクティビティの破棄/再作成を引き起こすものはたくさんあります。バンドルや retainInstance
フラグメントの使い方を覚えましょう。
そのため、ほとんどのアプリは、電話機のセンサー、ソフトウェア、物理的な構成に任せて、ユーザーがアプリをどのように操作したいかを自分で判断する必要があります。しかし、「センサー」の向きに関するデフォルトの動作に満足できない場合は、いくつかのケースについて検討する必要があるかもしれません。
nosensor
を使用します。これにより、ほとんどのタブレットでは横向きになり、ほとんどの電話では縦向きになりますが、それでもほとんどの「普通の」アプリにはお勧めできません(電話の横向きのソフトキーボードで入力したいユーザーもいますし、多くのタブレットユーザーは縦向きで読書をします。portrait
よりも sensorPortrait
の方が良いかもしれません。これは、タブレットでよくある上下逆さまの縦長を可能にします。