どうすれば横向きと縦向きのレイアウトを1つ作成できますか?ユーザーが携帯電話を横向きに回転させたときに、幅を広げて垂直方向のスペースを確保したいと考えています。
どうすれば横向きと縦向きのレイアウトを1つ作成できますか?ユーザーが携帯電話を横向きに回転させたときに、幅を広げて垂直方向のスペースを確保したいと考えています。
回答:
デフォルトでは、のレイアウトは/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も参照してください。
portrait
現在のバージョンのAndroid Studio(v1.0.2)では、下のスクリーンショットに示すビジュアルエディターのボタンをクリックするだけで、横長のレイアウトを追加できます。「景観変化の作成」を選択します
layout-land
フォルダに新しいコピーを置きます。そこからレイアウトを呼び出す方法はありますか?使用できませんR.layout.layout_name
。おかげで、構成の変更時に自分のレイアウトを手動で構成しようとしています。
/ res / layoutのレイアウトは、特に指定しない限り、縦向きと横向きの両方に適用されます。ホームページに/res/layout/home.xmlがあり、2つのレイアウトタイプで異なって見えるようにするとします。
次のように、特定のレイアウトを正しいフォルダ構造の下にグループ化できます。
layout-land-target_version
すなわち
layout-land-19 // KitKatをターゲットにする
同様に、レイアウトを作成できます。
これがあなたを助けることを願っています
-19
サフィックスの利点を説明できますか?何か役に立ちましたか?
すぐに説明します。
まず、Googleからの要求に応じてConstraintLayoutを使用する必要があることに気付くでしょう(androixライブラリを参照)。
Android Studioプロジェクトで、追加のres / layout /ディレクトリを作成することにより、画面固有のレイアウトを提供できます。異なるレイアウトを必要とする画面構成ごとに1つ。
つまり、どちらの場合もディレクトリ修飾子を使用する必要があります。
その結果、ここに例があります:
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