Bagaimana saya bisa memiliki satu tata letak untuk lanskap dan satu untuk potret? Saya ingin mengasumsikan lebar ekstra dan menghemat ruang vertikal ketika pengguna memutar telepon ke samping.
Bagaimana saya bisa memiliki satu tata letak untuk lanskap dan satu untuk potret? Saya ingin mengasumsikan lebar ekstra dan menghemat ruang vertikal ketika pengguna memutar telepon ke samping.
Jawaban:
Secara default, tata letak di /res/layout
diterapkan untuk potret dan lansekap.
Kalau sudah punya misalnya
/res/layout/main.xml
Anda dapat menambahkan folder baru /res/layout-land
, menyalin main.xml
ke dalamnya dan membuat penyesuaian yang diperlukan.
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.
portrait
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"
layout-land
folder 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.
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.
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
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
-19
akhiran itu? Apakah itu membantu?
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:
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