Android: tata letak alternatif xml untuk mode lansekap


Jawaban:


217

Secara default, tata letak di /res/layoutditerapkan untuk potret dan lansekap.

Kalau sudah punya misalnya

/res/layout/main.xml

Anda dapat menambahkan folder baru /res/layout-land, menyalin main.xmlke dalamnya dan membuat penyesuaian yang diperlukan.

orientasi

Lihat juga http://www.androidpeople.com/android-portrait-amp-landscape-differeent-layouts dan http://www.devx.com/wireless/Article/40792/1954 untuk beberapa opsi lainnya.


1
haruskah saya menjaga tata letak nama tanah atau kata lain @marapet
Vamsi Pavan Mahesh

9
Anda tidak dapat menggunakan kata lain
Foo

Gambar latar belakang saya terbentang di lanskap. Saya memiliki tata letak-tanah dan bidang yang dapat ditarik..mulai membentang ... Saya sudah mencoba menggunakan gambar yang sama, gambar 9-patch, mdpi, hdpi n semua..masih tetap ada :(
Prab

apa kata untukportrait
dsdsdsdsd

@dsdsdsdsd menurut Android studio adalah layout-port
Gregzenegair

76

Dalam versi Android Studio saat ini (v1.0.2) Anda cukup menambahkan tata letak lansekap dengan mengklik tombol di editor visual yang ditunjukkan pada tangkapan layar di bawah ini. Pilih "Buat Variasi Lanskap"

Android Studio menambahkan tata letak lansekap


Kecuali itu menempatkan salinan baru di layout-landfolder Anda . Adakah yang tahu cara memanggil tata letak dari sana? Tidak dapat menggunakan R.layout.layout_name. Saya mencoba mengkonfigurasi tata letak saya sendiri secara manual setelah perubahan konfigurasi, terima kasih.
Azurespot

2
@NoniA. Seharusnya mendeteksi ketika telepon beralih ke lansekap dan memanggil yang dari tata letak-tanah secara otomatis.
Distwo

43

Layout di / res / layout diterapkan untuk portrait dan landscape, kecuali Anda menentukan sebaliknya. Mari kita asumsikan kita memiliki /res/layout/home.xml untuk beranda kita dan kita ingin itu terlihat berbeda dalam 2 tipe tata letak.

  1. buat folder / res / layout-land (di sini Anda akan mengatur tata letak lanskap yang disesuaikan)
  2. salin home.xml di sana
  3. buat perubahan yang diperlukan untuk itu

Sumber


bagaimana dengan 'potret'?
dsdsdsdsd

Bagaimana dengan kualifikasi <sw> baru?
Ruchir Baronia

6

Cara tercepat untuk Android Studio 3.xx dan Android Studio 4.xx

1. Buka tab desain tata letak aktivitas

2. Di bagian atas Anda harus menekan pada tombol orientasi untuk pratinjau , ada opsi untuk membuat tata letak lanskap (periksa gambar), folder baru akan dibuat sebagai file tata letak xml Anda untuk orientasi tertentu

masukkan deskripsi gambar di sini


2

Anda dapat mengelompokkan tata letak spesifik Anda di bawah struktur folder yang benar sebagai berikut.

layout-land-target_version

yaitu

layout-land-19 // target KitKat

Anda juga dapat membuat tata letak.

Semoga ini bisa membantu Anda


Terima kasih telah menjawab, tetapi saya tidak melihat bagaimana jawaban Anda membantu karena pertanyaan ini sudah dijawab. Mungkin Anda bisa menjelaskan manfaat -19akhiran itu? Apakah itu membantu?
Lapangan Bryan

0

Saya akan mencoba menjelaskannya segera.

Pertama, Anda mungkin memperhatikan bahwa sekarang Anda harus menggunakan ConstraintLayout seperti yang diminta oleh google (lihat pustaka androix).

Di projet studio android Anda, Anda dapat memberikan tata letak khusus layar dengan membuat res / tata letak / direktori tambahan. Satu untuk setiap konfigurasi layar yang memerlukan tata letak yang berbeda.

Ini berarti Anda harus menggunakan kualifikasi direktori dalam kedua kasus:

  • Dukungan perangkat Android
  • Android landscape atau mode potret

Sebagai hasilnya, inilah contohnya:

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

Anda juga dapat menggunakan kualifikasi dengan file sumber daya menggunakan dimens.xml.

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>

Sumber: https://developer.android.com/training/multiscreen/screensizes

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.