1. ホーム
  2. android

[解決済み] Androidのランドスケープモードを無効にする方法を教えてください。

2022-03-19 13:50:22

質問

Androidアプリの一部のビューで横長モードを無効にするにはどうすればよいですか?

解決方法を教えてください。

追加 android:screenOrientation="portrait" を AndroidManifest.xml 内のアクティビティに追加します。たとえば、以下のようになります。

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

これは超人気の回答になったので、私は非常に罪悪感を感じています。無理やり肖像画を描くことが、よく適用される問題に対する正しい解決策になることはほとんどないからです。
強制ポートレートでの主な注意点

  • アクティビティについて考える必要がなくなるわけではありません。 ライフサイクルイベントや、状態の保存・復元を適切に行うことができます。多くの アプリの回転以外でアクティビティが起動するのは マルチタスクのような避けられないものも含めて。近道はありません。バンドルと retainInstance フラグメントを使用します。
  • iPhoneのような均一な体験とは異なり、縦向きが明らかに一般的ではないデバイスがあることを念頭に置いてください。Nvidia Shieldのようなハードウェアキーボードやゲームパッドを搭載したデバイスを使用している場合、縦向きで使用することはできません。 Chromebooks での 折り畳み式 または サムスンDeX ポートレートを強制すると、アプリの体験が制限されたり、ユーザビリティが大きく損なわれたりすることがあります。アプリが他の方向をサポートすることでネガティブなエクスペリエンスにつながるような強力なUXの主張がない場合、おそらく横向きを強制すべきではありません。例えば、「これは、常に固定されたハードウェアドックで使用される、ある特定のモデルのタブレット用のレジスターアプリです」というような話です。

ですから、ほとんどのアプリは、ユーザーがアプリとどのように対話したいかを、携帯電話のセンサー、ソフトウェア、および物理的な構成が独自に判断するようにすればいいのです。しかし、次のようなデフォルトの動作に満足できない場合は、まだ検討する必要があるかもしれません。 sensor オリエンテーションを使用します。

  • デバイスのセンサーやソフトウェアがうまく対処できないと思われる、活動中の偶発的な方向転換が主な懸念事項の場合(たとえば、傾きベースのゲームなど)、横向きと縦向きのサポートを検討しますが、その場合、次のような方法を使用します。 nosensor を指定します。しかし、ほとんどのquot;normal"アプリにはお勧めできません(携帯電話のソフトキーボードを横向きに入力したいユーザーもいますし、多くのタブレットユーザーは縦向きで読書をします - そしてあなたは彼らに任せるべきです)。
  • もし、あなたが まだ は、何らかの理由で強制的にポートレートする必要があります。 sensorPortrait よりもよいかもしれません。 portrait に対して アンドロイド2.3 (Gingerbread)以降では、タブレットでよく使われる逆さまのポートレートが可能になります。