Android:横向きモードの代替レイアウトXML


回答:


217

デフォルトでは、のレイアウトは/res/layout縦向きと横向きの両方に適用されます。

たとえば

/res/layout/main.xml

新しいフォルダを追加し、そこ/res/layout-landにコピーmain.xmlして、必要な調整を行うことができます。

オリエンテーション

その他のオプションについては、http://www.androidpeople.com/android-portrait-amp-landscape-differeent-layoutsおよびhttp://www.devx.com/wireless/Article/40792/1954参照してください


1
名前layout-landまたは他の単語@marapet を保持する必要がありますか
Vamsi Pavan Mahesh

9
他の単語は使用できません
Foo

私の背景画像は横向きに広がっています。layout-landとdrawable-landがあります..それでも広がっています..同じ画像を使用してみました。
Prabs

言葉の意味portrait
dsdsdsdsd

Androidスタジオによると、@ dsdsdsdsdはレイアウトポートです
Gregzenegair

76

現在のバージョンのAndroid Studio(v1.0.2)では、下のスクリーンショットに示すビジュアルエディターのボタンをクリックするだけで、横長のレイアウトを追加できます。「景観変化の作成」を選択します

Android Studioは横向きのレイアウトを追加します


それを除いて、あなたのlayout-landフォルダに新しいコピーを置きます。そこからレイアウトを呼び出す方法はありますか?使用できませんR.layout.layout_name。おかげで、構成の変更時に自分のレイアウトを手動で構成しようとしています。
Azurespot 2015

2
@NoniA。電話が横向きに切り替わったことを検出し、レイアウトランドから自動的に呼び出します。
Distwo 2015年

43

/ res / layoutのレイアウトは、特に指定しない限り、縦向きと横向きの両方に適用されます。ホームページに/res/layout/home.xmlがあり、2つのレイアウトタイプで異なって見えるようにするとします。

  1. / res / layout-landフォルダーを作成します(ここでは、横方向に調整されたレイアウトを維持します)
  2. そこにhome.xmlをコピーします
  3. 必要な変更を加える

ソース


「ポートレート」はどうですか?
dsdsdsdsd 2016年

新しい<sw>修飾子についてはどうですか?
Ruchir Baronia

6

Android Studio 3.xxおよびAndroid Studio 4.xxの最速の方法

1.アクティビティレイアウトのデザインタブに移動します

2.上部にある[ プレビュー向き ]ボタンを押す必要があります。横向きのレイアウトを作成するオプションがあります(画像を確認)。その特定の向きのxmlレイアウトファイルとして新しいフォルダーが作成されます

ここに画像の説明を入力してください


2

次のように、特定のレイアウトを正しいフォルダ構造の下にグループ化できます。

layout-land-target_version

すなわち

layout-land-19 // KitKatをターゲットにする

同様に、レイアウトを作成できます。

これがあなたを助けることを願っています


回答いただきありがとうございます。この質問はすでに回答されているため、回答がどのように役立つかわかりません。たぶん、-19サフィックスの利点を説明できますか?何か役に立ちましたか?
ブライアンフィールド

0

すぐに説明します。

まず、Googleからの要求に応じてConstraintLayoutを使用する必要があることに気付くでしょう(androixライブラリを参照)。

Android Studioプロジェクトで、追加のres / layout /ディレクトリを作成することにより、画面固有のレイアウトを提供できます。異なるレイアウトを必要とする画面構成ごとに1つ。

つまり、どちらの場合もディレクトリ修飾子を使用する必要があります。

  • Androidデバイスのサポート
  • Android横向きまたは縦向きモード

その結果、ここに例があります:

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

また、dimens.xmlを使用してres ressourcesファイルで修飾子を使用することもできます。

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 / dimens.xml

<resources>
    <dimen name="grid_view_item_height">70dp</dimen>
</resources>

res / values-land / dimens.xml

<resources>
    <dimen name="grid_view_item_height">150dp</dimen>
</resources>

your_item_grid_or_list_layout.xml

<androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/constraintlayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content

    <ImageView
            android:id="@+id/image"
            android:layout_width="0dp"
            android:layout_height="@dimen/grid_view_item_height"
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:background="@drawable/border"
            android:src="@drawable/ic_menu_slideshow">

</androidx.constraintlayout.widget.ConstraintLayout>

ソース:https : //developer.android.com/training/multiscreen/screensizes

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.