Membuat tata letak responsif di aplikasi kanvas

Sebelum membuat aplikasi kanvas di Power Apps, Anda menentukan apakah akan menyesuaikan aplikasi untuk ponsel atau tablet. Pilihan ini menentukan ukuran dan bentuk kanvas yang akan digunakan untuk membuat aplikasi Anda.

Setelah menentukan pilihan tersebut, Anda dapat membuat beberapa pilihan lagi jika memilih Pengaturan > Tampilan. Anda dapat memilih orientasi potret atau lanskap dan ukuran layar (hanya tablet). Anda juga dapat mengunci atau membuka rasio aspek dan mendukung rotasi perangkat (atau tidak).

Pilihan tersebut mendasari setiap pilihan lain yang Anda buat saat merancang tata letak layar. Jika aplikasi berjalan pada perangkat dengan ukuran berbeda atau di web, seluruh skala tata letak akan menyesuaikan dengan layar tempat aplikasi berjalan. Jika aplikasi yang dirancang untuk ponsel berjalan di jendela browser besar, misalnya, aplikasi akan diskalakan untuk mengimbanginya dan terlihat terlalu besar untuk ruang tersebut. Aplikasi ini tidak dapat memanfaatkan piksel tambahan dengan menampilkan kontrol lainnya atau lebih banyak konten.

Jika Anda membuat tata letak responsif, kontrol dapat merespons terhadap berbagai perangkat atau ukuran jendela, sehingga berbagai pengalaman akan terasa lebih alami. Untuk mencapai tata letak responsif, Anda dapat menyesuaikan beberapa pengaturan dan menulis ekspresi di seluruh aplikasi.

Nonaktifkan Skalakan agar sesuai

Anda dapat mengonfigurasi setiap layar sehingga tata letaknya menyesuaikan ke ruang aktual tempat aplikasi berjalan.

Anda mengaktifkan keresponsifan dengan menonaktifkan pengaturan Skalakan agar sesuai aplikasi, yang diaktifkan secara default. Jika Anda menonaktifkan pengaturan ini, Anda juga akan menonaktifkan Kunci rasio aspek karena Anda tidak lagi mendesain untuk bentuk layar tertentu. (Anda tetap dapat menentukan apakah aplikasi Anda mendukung rotasi perangkat.)

Nonaktifkan pengaturan Skalakan agar sesuai.

Untuk membuat aplikasi Anda responsif, Anda harus melakukan langkah-langkah tambahan, namun perubahan ini adalah langkah pertama untuk dapat membuat keresponsifan.

Memahami dimensi aplikasi dan layar

Agar tata letak aplikasi Anda merespons perubahan pada dimensi layar, Anda akan menulis formula yang menggunakan properti Lebar dan Tinggi pada layar. Untuk menampilkan properti ini, buka aplikasi di Power Apps Studio, lalu pilih layar. Formula default untuk properti ini muncul di tab Lanjutan pada panel kanan.

Lebar = Max(App.Width, App.DesignWidth)

Tinggi = Max(App.Height, App.DesignHeight)

Formula ini merujuk pada properti Lebar, Tinggi, DesignWidth dan DesignHeight aplikasi. Properti Lebar dan Tinggi aplikasi terkait dengan dimensi perangkat atau jendela browser di mana aplikasi Anda berjalan. Jika pengguna mengubah ukuran jendela browser (atau memutar perangkat jika Anda menonaktifkan Kunci orientasi), nilai properti ini akan berubah secara dinamis. Formula di properti Lebar dan Tinggi layar dievaluasi ulang saat nilai ini berubah.

Properti DesignWidth dan DesignHeight berasal dari dimensi yang Anda tentukan di panel Tampilan dari Pengaturan. Misalnya, jika Anda memilih tata letak ponsel dalam orientasi potret, DesignWidth adalah 640 dan DesignHeight adalah 1136.

Saat digunakan dalam formula untuk properti Lebar dan Tinggi layar, Anda dapat mempertimbangkan DesignWidth dan DesignHeight sebagai dimensi minimum dari aplikasi yang akan Anda desain. Jika area aktual yang tersedia untuk aplikasi Anda bahkan lebih kecil dari dimensi minimum ini, formula untuk properti Lebar dan Tinggi layar, pastikan bahwa nilainya tidak akan menjadi lebih kecil dari minimum. Dalam kasus tersebut, pengguna harus menggulir untuk melihat semua konten layar.

Setelah Anda menetapkan DesignWidth dan DesignHeight aplikasi, Anda tidak akan (dalam kebanyakan kasus) perlu mengubah formula default untuk properti Lebar dan Tinggi layar. Kemudian, topik ini membahas kasus yang memungkinkan Anda menyesuaikan formula ini.

Gunakan formula untuk tata letak dinamis

Untuk membuat desain responsif, Anda akan mencari dan mengukur setiap kontrol dengan menggunakan formula dan bukan dengan nilai koordinat absolut (konstan). Formula ini mengekspresikan posisi dan ukuran setiap kontrol dari segi ukuran layar secara keseluruhan atau relatif terhadap kontrol lain pada layar.

Penting

Setelah Anda menulis formula untuk properti X, Y, Lebar dan Tinggi kontrol, formula Anda akan ditimpa dengan nilai konstan jika Anda kemudian menarik kontrol di editor kanvas. Jika Anda mulai menggunakan formula untuk mencapai tata letak dinamis, Anda harus menghindari kontrol seret.

Dalam kasus yang paling sederhana, satu kontrol mengisi seluruh layar. Untuk membuat efek ini, atur properti kontrol ke nilai berikut:

Properti Nilai
X 0
Y 0
Lebar Parent.Width
Tinggi Parent.Height

Formula ini menggunakan operator Induk. Untuk kontrol yang ditempatkan langsung pada layar, Induk merujuk ke layar. Dengan nilai properti ini, kontrol akan muncul di sudut kiri atas layar (0, 0) dan memiliki Lebar dan Tinggi yang sama dengan layar.

Nanti di topik ini, Anda akan menerapkan prinsip ini (dan operator Induk) untuk memposisikan kontrol di dalam wadah lain, seperti galeri, kontrol grup, dan komponen.

Sebagai alternatif, kontrol hanya dapat mengisi separuh bagian atas layar. Untuk membuat efek ini, atur properti Tinggi ke Parent.Height /2, dan biarkan formula lainnya tidak diubah.

Jika Anda menginginkan kontrol kedua untuk mengisi separuh bawah layar yang sama, Anda dapat mengambil setidaknya dua pendekatan lain untuk membangun formulanya. Secara sederhana, Anda dapat mengambil pendekatan ini:

Kontrol Properti Rumus
Lebih tinggi X 0
Lebih tinggi Y 0
Lebih tinggi Lebar Parent.Width
Lebih tinggi Tinggi Parent.Height / 2
Lebih rendah X 0
Lebih rendah Y Parent.Height / 2
Lebih rendah Lebar Parent.Width
Lebih rendah Tinggi Parent.Height / 2

Kontrol Atas dan Bawah.

Konfigurasi ini akan menghasilkan efek yang Anda inginkan, namun Anda harus mengedit setiap formula jika Anda berubah pikiran tentang ukuran relatif kontrol ini. Misalnya, Anda dapat memutuskan bahwa kontrol atas hanya akan menempati sepertiga teratas layar, dengan kontrol bawah mengisi dua pertiga dari bagian yang lebih rendah.

Untuk membuat efek tersebut, Anda harus memperbarui properti Tinggi pada kontrol Atas dan properti Y serta Tinggi pada kontrol Bawah. Tetapi, pertimbangkan untuk menulis formula untuk kontrol Bawah dalam hal kontrol Atas (dan itu sendiri), seperti dalam contoh ini:

Kontrol Properti Rumus
Lebih tinggi X 0
Lebih tinggi Y 0
Lebih tinggi Lebar Parent.Width
Lebih tinggi Tinggi Parent.Height / 3
Lower X 0
Lower Y Upper.Y + Upper.Height
Lower Lebar Parent.Width
Lebih rendah Tinggi Parent.Height - Lower.Y

Ukuran relatif kontrol Atas dan Bawah.

Dengan menggunakan formula ini, Anda hanya perlu mengubah properti Tinggi pada kontrol Atas untuk mengekspresikan bagian yang berbeda dari tinggi layar. Kontrol Bawah secara otomatis bergerak dan berubah ukuran untuk memperhitungkan perubahan.

Anda dapat menggunakan pola formula ini untuk mengekspresikan hubungan tata letak umum antara kontrol, bernama C, dan kontrol induk atau saudaranya, bernama D.

Hubungan antara C dan induknya Properti Rumus Ilustrasi
C mengisi lebar induk, dengan margin N X N Contoh C mengisi lebar induk.
Lebar Parent.Width - (N * 2)
C mengisi tinggi induk, dengan margin N Y N Contoh C mengisi tinggi induk.
Tinggi Parent.Height - (N * 2)
C selaras dengan tepi kanan dari induk, dengan margin N X Parent.Width - (C.Width + N) Contoh C sejajar dengan tepi kanan induk.
C selaras dengan tepi bawah dari induk, dengan margin N Y Parent.Height - (C.Height + N) Contoh C sejajar dengan tepi bawah induk.
C terpusat secara horizontal pada induk X (Parent.Width - C.Width) / 2 Contoh dari C terpusat secara horizontal pada induk.
C terpusat secara vertikal pada induk Y (Parent.Height - C.Height) / 2 Contoh dari C terpusat secara vertikal pada induk.
Hubungan antara C dan D Properti Rumus Ilustrasi
C secara horizontal selaras dengan D dan dengan lebar yang sama dengan D X D.X Contoh pola sejajar horizontal.
Lebar D.Width
C secara vertikal selaras dengan D dan dengan tinggi yang sama dengan D Y D.Y Contoh pola sejajar vertikal.
Tinggi D.Height
Tepi kanan C selaras dengan tepi kanan D X D.X + D.Width - C.Width Contoh pola rata tepi kanan.
Tepi bawah C selaras dengan tepi bawah D Y D.Y + D.Height - C.Height Contoh pola rata tepi bawah.
C terpusat secara horizontal relatif terhadap D X D.X + (D.Width - C.Width) / 2 Contoh pola horizontal yang ditengahkan.
C terpusat secara vertikal relatif terhadap D Y D.Y + (D.Height - C.Height) /2 Contoh pola vertikal yang ditengahkan.
C diposisikan di sebelah kanan D dengan jarak N X D.X + D.Width + N Contoh diposisikan ke pola yang tepat.
C diposisikan di bawah D dengan jarak N Y D.Y + D.Height + N Contoh diposisikan di bawah pola.
C mengisi jarak antara D dan tepi kanan dari induk X D.X + D.Width Contoh ruang pengisian antara D dan pola tepi kanan.
Lebar Parent.Width - C.X
C mengisi jarak antara D dan tepi bawah dari induk Y D.Y + D.Height Contoh ruang pengisian antara pola D dan bagian bawah pola tepi.
Tinggi Parent.Height - C.Y

Tata letak hierarki

Saat Anda membuat layar yang berisi kontrol lainnya, akan menjadi lebih nyaman (atau bahkan perlu) untuk memposisikan kontrol relatif terhadap kontrol induk, bukan relatif terhadap layar atau kontrol saudara. Dengan mengatur kontrol Anda ke dalam struktur hierarki, Anda dapat membuat formula lebih mudah untuk ditulis dan dipelihara.

Galeri

Jika Anda menggunakan galeri di aplikasi, Anda harus meletakkan kontrol dalam templat galeri. Anda dapat memposisikan kontrol ini dengan menulis formula yang menggunakan operator Induk, yang akan merujuk ke templat galeri. Dalam formula pada kontrol dalam template galeri, gunakan properti Parent.TemplateHeight dan Parent.TemplateWidth; jangan gunakan Parent.Width dan Parent.Height, yang merujuk pada ukuran galeri secara keseluruhan.

Galeri vertikal menampilkan Lebar dan Tinggi Templat.

Kontrol wadah

Anda dapat menggunakan kontrol wadah Tata letak sebagai kontrol induk.

Pertimbangkan contoh header di bagian atas layar. Ini umum untuk memiliki header dengan judul dan beberapa ikon yang dapat berinteraksi dengan pengguna Anda. Anda dapat membuat header tersebut menggunakan kontrol Wadah, yang berisi kontrol Label dan dua kontrol Ikon:

Contoh header menggunakan grup.

Atur properti untuk kontrol ini ke nilai ini:

Properti Kop Menu Tutup Jabatan
X 0 0 Parent.Width - Close.Width Menu.X + Menu.Width
Y 0 0 0 0
Lebar Parent.Width Parent.Height Parent.Height Close.X - Title.X
Tinggi 64 Parent.Height Parent.Height Parent.Height

Untuk kontrol Header, Parent merujuk ke layar. Untuk lainnya, Parent merujuk ke kontrol Header.

Setelah menulis formula ini, Anda dapat menyesuaikan ukuran atau posisi kontrol Header dengan mengubah formula untuk properti. Ukuran dan posisi kontrol anak akan disesuaikan secara otomatis.

Kontrol kontainer tata letak otomatis

Anda dapat menggunakan fitur, kontrol kontainer tata letak otomatis untuk secara otomatis menata komponen anak. Kontainer ini menentukan posisi komponen anak sehingga Anda tidak perlu mengatur X, Y untuk komponen di dalam kontainer. Selain itu, dapat mendistribusikan ruang yang tersedia untuk komponen anak berdasarkan pengaturan, serta menentukan keselarasan vertikal dan horizontal komponen anak. Informasi selengkapnya: Kontrol kontainer tata letak otomatis

Komponen

Jika menggunakan fitur lain, bernama Komponen, Anda dapat membuat blok penyusun dan menggunakannya kembali di seluruh aplikasi. Seperti dengan kontrol Wadah, kontrol yang Anda tempatkan dalam komponen harus berdasarkan pada posisi dan formula ukuran pada Parent.Width dan Parent.Height, yang merujuk ke ukuran komponen. Informasi lainnya: Membuat komponen.

Menyesuaikan tata letak untuk ukuran dan orientasi perangkat

Sejauh ini, Anda telah mempelajari cara menggunakan formula untuk mengubah ukuran setiap kontrol sebagai respons terhadap ruang yang tersedia, sekaligus menjaga kontrol selaras relatif terhadap satu sama lain. Namun Anda mungkin ingin atau perlu membuat perubahan tata letak yang lebih substansial sebagai respons terhadap ukuran dan orientasi perangkat yang berbeda. Saat perangkat diputar dari orientasi potret ke lanskap, misalnya, Anda mungkin ingin beralih dari tata letak vertikal ke horizontal. Pada perangkat yang lebih besar, Anda dapat menyajikan lebih banyak konten atau menyusunnya kembali untuk menyediakan tata letak yang lebih menarik. Pada perangkat yang lebih kecil, Anda mungkin harus membagi konten di beberapa layar.

Orientasi perangkat

Formula default untuk properti Lebar dan Tinggi layar, seperti yang dijelaskan sebelumnya di topik ini, tidak akan selalu memberikan pengalaman yang baik jika pengguna memutar perangkat. Misalnya, aplikasi yang dirancang untuk ponsel dalam orientasi potret memiliki DesignWidth 640 dan DesignHeight 1136. Aplikasi yang sama pada ponsel dalam orientasi lanskap akan memiliki nilai properti ini:

  • Properti Lebar layar diatur ke Max(App.Width, App.DesignWidth). Lebar aplikasi (1136) lebih besar dari DesignWidth (640), sehingga formula dievaluasi ke 1136.
  • Properti Tinggi layar diatur ke Max(App.Height, App.DesignHeight). Tinggi aplikasi (640) lebih kecil dari DesignHeight (1136), sehingga formula dievaluasi ke 1136.

Dengan Tinggi layar 1136 dan tinggi perangkat (dalam orientasi ini) 640, pengguna harus menggulir layar secara vertikal untuk menampilkan semua kontennya, yang mungkin bukan merupakan pengalaman yang Anda inginkan.

Untuk menyesuaikan properti Lebar dan Tinggi layar dengan orientasi perangkat, Anda dapat menggunakan formula berikut:

Lebar = Max(App.Width, If(App.Width < App.Height, App.DesignWidth, App.DesignHeight))

Tinggi = Max(App.Height, If(App.Width < App.Height, App.DesignHeight, App.DesignWidth))

Formula ini menukar nilai DesignWidth dan DesignHeight aplikasi, berdasarkan apakah lebar perangkat kurang dari tingginya (orientasi potret) atau lebih besar dari tingginya (orientasi lanskap).

Setelah menyesuaikan formula Lebar dan Tinggi, Anda juga dapat mengatur ulang kontrol dalam layar agar menggunakan ruang yang tersedia dengan lebih baik. Misalnya, jika masing-masing dari dua kontrol menempati separuh layar, Anda mungkin menumpuk mereka secara vertikal dalam potret, namun mengaturnya berdampingan dalam lanskap.

Anda dapat menggunakan properti Orientasi layar untuk menentukan apakah layar berorientasi vertikal atau horizontal.

Catatan

Di orientasi lanskap, kontrol Atas dan Bawah muncul sebagai kontrol kiri dan kanan.

Kontrol Properti Rumus
Lebih tinggi X 0
Lebih tinggi Y 0
Lebih tinggi Lebar If(Parent.Orientation = Layout.Vertical, Parent.Width, Parent.Width / 2)
Lebih tinggi Tinggi If(Parent.Orientation = Layout.Vertical, Parent.Height / 2, Parent.Height)
Lower X If(Parent.Orientation = Layout.Vertical, 0, Upper.X + Upper.Width)
Lower Y If(Parent.Orientation = Layout.Vertical, Upper.Y + Upper.Height, 0)
Lower Lebar Parent.Width - Lower.X
Lebih rendah Tinggi Parent.Height - Lower.Y

ekspresi untuk menyesuaikan orientasi potret.

ekspresi untuk menyesuaikan orientasi lanskap.

Ukuran layar dan titik henti

Anda dapat menyesuaikan tata letak berdasarkan ukuran perangkat. Properti Ukuran layar mengklasifikasikan ukuran perangkat saat ini. Ukuran adalah integer positif; jenis ScreenSize menyediakan konstanta bernama untuk membantu keterbacaannya. Tabel ini mencantumkan daftar konstanta:

Konstanta Nilai Jenis perangkat biasa (menggunakan pengaturan aplikasi default)
ScreenSize.Small 1 Nomor Telepon
ScreenSize.Medium 2 Tablet, yang dipegang secara vertikal
ScreenSize.Large 3 Tablet, yang dipegang secara horizontal
ScreenSize.ExtraLarge 4 Komputer desktop

Gunakan ukuran ini untuk membuat keputusan tentang tata letak aplikasi Anda. Misalnya, jika Anda ingin kontrol disembunyikan di perangkat berukuran telepon namun terlihat di perangkat lain, Anda dapat mengatur properti Terlihat kontrol ke formula ini:

Parent.Size >= ScreenSize.Medium

Formula ini dievaluasi ke true saat ukuran sedang atau lebih besar dan false untuk lainnya.

Jika Anda ingin kontrol untuk menempati bagian yang berbeda dari lebar layar berdasarkan ukuran layar, atur properti Lebar kontrol ke formula ini:

Parent.Width *
Switch(
    Parent.Size,
    ScreenSize.Small, 0.5,
    ScreenSize.Medium, 0.3,
    0.25
)

Formula ini mengatur lebar kontrol menjadi setengah dari lebar layar pada layar kecil, tiga per sepuluh dari lebar layar pada layar sedang dan seperempat dari lebar layar pada semua layar lainnya.

Titik henti yang disesuaikan

Properti Ukuran layar dihitung dengan membandingkan properti Lebar layar terhadap nilai di properti SizeBreakpoints aplikasi. Properti ini adalah tabel nomor satu kolom yang menunjukkan titik henti lebar yang memisahkan ukuran layar yang disebutkan:

Pada aplikasi yang dibuat untuk tablet atau web, nilai default di properti SizeBreakpoints aplikasi adalah [600, 900, 1200]. Pada aplikasi yang dibuat untuk ponsel, nilainya [1200, 1800, 2400]. (Nilai untuk aplikasi ponsel digandakan karena aplikasi tersebut menggunakan koordinat yang secara efektif menggandakan koordinat yang digunakan di aplikasi lain.)

nilai default dari properti App.SizeBreakpoints.

Anda dapat menyesuaikan titik henti aplikasi Anda dengan mengubah nilai di properti SizeBreakpoints aplikasi. Pilih Aplikasi di tampilan hierarki, pilih SizeBreakpoints di daftar properti, lalu Edit nilai di bilah formula. Anda dapat membuat titik henti sebanyak apa pun yang dibutuhkan oleh aplikasi Anda, namun hanya ukuran 1 hingga 4 yang sesuai dengan ukuran layar yang dinamai. Dalam formula, Anda dapat merujuk ke ukuran di luar ExtraLarge dengan nilai numerik (5, 6, dan seterusnya).

Anda juga dapat menentukan titik henti yang lebih sedikit. Contohnya, aplikasi Anda mungkin hanya memerlukan tiga ukuran (dua titik henti), sehingga ukuran layar yang mungkin adalah kecil, sedang, dan besar.

Batasan yang diketahui

Kanvas penulisan tidak merespons formula ukuran yang dibuat. Untuk menguji perilaku responsif, simpan dan publikasikan aplikasi, lalu buka di perangkat atau di jendela browser dengan berbagai ukuran dan orientasi.

Jika Anda menulis ekspresi atau formula pada properti X, Y, Lebar dan Tinggi kontrol, Anda akan menimpa ekspresi atau formula tersebut jika Anda kemudian menyeret kontrol ke lokasi lain atau mengubah ukuran kontrol dengan menyeret tepinya.

Catatan

Apa bahasa dokumentasi yang Anda inginkan? Lakukan survei singkat. (perlu diketahui bahwa survei ini dalam bahasa Inggris)

Survei akan berlangsung kurang lebih selama tujuh menit. Tidak ada data pribadi yang dikumpulkan (pernyataan privasi).