ポートレートとランドスケープのオリエンテーションにさまざまなレイアウトを指定するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/2124046

質問

アクティビティ用に2つの個別のレイアウトXMLファイルを指定できることへの参照を見てきました。1つはポートレート用、もう1つはランドスケープ用です。それを行う方法に関する情報を見つけることはできませんでした。各アクティビティに対して、どのxmlファイルがポートレートレイアウトであり、どのランドスケープレイアウトですか?

さまざまな画面サイズに異なるレイアウトを指定することも可能ですか?もしそうなら、これはどのように行われますか?

役に立ちましたか?

解決

aを作成します layout-land ディレクトリとレイアウトXMLファイルのランドスケープバージョンをそのディレクトリに配置します。

他のヒント

オリエンテーションと解像度に応じて、異なる名前の別々のフォルダーの下に配置する必要があります。デバイスは、画面設定に適したものを自動的に選択します

詳細はこちら:

http://developer.android.com/guide/practices/screens_support.html

「画面サイズと密度のリソースディレクトリ予選」の下

マウス愛好家のために! リソースフォルダーを右クリックします Add new resource file, 、および利用可能な予選から選択します orientation :

enter image description here


それでも、サブフォルダーの「レイアウトランド」を追加することで、手動でそれを行うことができます

「Your-Project-Directory app src main res」

それ以来、このサブフォルダーの下のレイアウト.xmlファイルは、ランドスケープモードでのみ機能します 自動的.

ポートレートモードには「レイアウトポート」を使用します。

ただのリマインダー:

削除する orientation から android:configChanges マニフェストのアクティビティの属性 xml 定義した場合はファイル:

android:configChanges="orientation|screenLayout|screenSize"

新しいディレクトリを作成します layout-land, 、次に作成します xml 同じ名前のファイル layout-land そのまま layout landscapeモードのコンテンツをディレクトリと整列させます。

両方のコンテンツのIDに注意してください xml と同じ。

またはこれを使用してください:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
            android:scrollbars="vertical" 
            android:layout_height="wrap_content" 
            android:layout_width="fill_parent">

  <LinearLayout android:orientation="vertical"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">

     <!-- Add your UI elements inside the inner most linear layout -->

  </LinearLayout>
</ScrollView>

最新のAndroidバージョンで最も簡単な方法は、XML(テキストではなく)の設計モードに行くことだと思います。

次に、メニューから、[オプション]を選択します - ランドスケープバリエーションを作成します。これにより、数秒で手間をかけずにランドスケープXMLが作成されます。最新のAndroid Studioバージョンでは、すぐにランドスケープビューを作成できます。

enter image description here

これがあなたのためにうまくいくことを願っています。

以下の最後の行は、2つの量子を適用するための例です。 風景と最小の幅(600dp)画面。必要なもので600dpを更新します。

res/layout/main_activity.xml                # For handsets
res/layout-land/main_activity.xml           # For handsets in landscape
res/layout-sw600dp/main_activity.xml        # For 7” tablets
res/layout-sw600dp-land/main_activity.xml   # For 7” tablets in landscape

上記はダメンにも適用されます

res/values/dimens.xml                # For handsets
res/values-land/dimens.xml           # For handsets in landscape
res/values-sw600dp/dimens.xml        # For 7” tablets
res/values-sw600dp-land/dimens.xml   # For 7” tablets in landscape

有用なデバイスメトリック: https://material.io/tools/devices/

  1. RESフォルダーを右クリック、
  2. 新しい - > Androidリソースファイル
  3. 利用可能な予選では、オリエンテーションを選択し、
  4. 選択した予選に追加します
  5. 画面の向きでは、ランドスケープを選択します
  6. OKを押します

Android Studio 3.4.1の使用、 それはもはや作成されません layout-land フォルダ. 。フォルダーを作成し、2つのレイアウトファイルをまとめます。

enter image description here

Android Studio 3.XXの最速の方法

1.アクティビティレイアウトの[デザイン]タブにGOになります

2.プレビューボタンの方向を押す必要がある上部に、ランドスケープレイアウトを作成するオプションがあります(画像をチェック)、新しいフォルダーがその特定の向きのXMLレイアウトファイルとして作成されます

enter image description here

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top