Androidでランドスケープモードを無効にするにはどうすればいいですか? 質問する

Androidでランドスケープモードを無効にするにはどうすればいいですか? 質問する

Android アプリの一部のビューでランドスケープ モードを無効にするにはどうすればよいでしょうか?

ベストアンサー1

AndroidManifest.xml のアクティビティに追加しますandroid:screenOrientation="portrait"。例:

<activity android:name=".SomeActivity"
          android:label="@string/app_name"
          android:screenOrientation="portrait" />

これは非常に人気のある回答になったため、ポートレートを強制することは、頻繁に適用される問題に対する正しい解決策になることはほとんどなく、非常に罪悪感を感じています。
ポートレートを強制することに関する主な注意点は次のとおりです。

  • これによって、アクティビティのライフサイクル イベントや適切な状態の保存/復元について考える必要がなくなるわけではありません。アプリのローテーション以外にも、マルチタスクなどの避けられないものを含め、アクティビティの破棄/再作成をトリガーする要因はたくさんあります。近道はありません。バンドルとretainInstanceフラグメントの使い方を学んでください。
  • iPhoneのかなり統一されたエクスペリエンスとは異なり、縦向きが明らかに人気のないデバイスもあることを覚えておいてください。ユーザーがハードウェアキーボードやNvidia Shieldのようなゲームパッドを備えたデバイスを使用している場合、Chromebook について、 の上折りたたみ式、またはサムスンDeX縦向きを強制すると、アプリのエクスペリエンスが制限されたり、非常に使い勝手が悪くなったりする可能性があります。アプリに他の向きをサポートすることでマイナスのエクスペリエンスにつながる強力な UX の根拠がない場合は、横向きを強制しない方がよいでしょう。「これは、固定ハードウェア ドックで常に使用される特定のタブレット モデル用のレジ アプリです」などのことを言っています。

そのため、ほとんどのアプリでは、ユーザーがアプリとどのようにやり取りするかについて、電話のセンサー、ソフトウェア、および物理的な構成に独自の判断を任せる必要があります。ただし、使用sensorケースでの向きのデフォルトの動作に満足できない場合は、いくつかのケースについて検討する必要があります。

  • 主な懸念事項が、デバイスのセンサーとソフトウェアがうまく対応できないと思われるアクティビティの途中での偶発的な方向変更である場合 (たとえば、傾きベースのゲーム)、横長と縦長をサポートし、nosensor方向については を使用することを検討してください。これにより、ほとんどのタブレットでは横長が、ほとんどの電話では縦長が強制されますが、それでもほとんどの「通常の」アプリにはこれをお勧めしません (一部のユーザーは、携帯電話の横長ソフトキーボードで入力することを好むし、多くのタブレット ユーザーは縦長で読むので、それを許可する必要があります)。
  • それでも何らかの理由でポートレートを強制する必要がある場合はsensorPortraitportraitアンドロイド 2.3(Gingerbread) 以降では、タブレットの使用でよくある上下逆さまのポートレートが可能になります。

おすすめ記事