Langsung ke konten utama

Tampilan Edge-to-Edge di Capacitor Tanpa Plugin

Pelajari cara konfigurasi edge-to-edge display yang benar di aplikasi Capacitor Anda menggunakan opsi konfigurasi resmi adjustMarginsForEdgeToEdge - tanpa perlu plugin atau hack.

Edge-to-Edge Display di Capacitor Tanpa Plugin Capgo blog illustration

Ingin implementasi edge-to-edge display di aplikasi Capacitor Anda? Anda tidak butuh hack, plugin, atau workaround. Capacitor punya dukungan resmi untuk edge-to-edge display melalui adjustMarginsForEdgeToEdge opsi konfigurasi - hanya saja belum banyak didokumentasikan.

Banyak developer kesulitan mengatur layout edge-to-edge di aplikasi Capacitor, terutama untuk target Android 15+. Mereka sering kali terpaksa menggunakan plugin custom atau hack CSS demi mendapatkan tampilan edge-to-edge yang modern. Padahal, ada cara native yang lebih baik.

Apa itu Edge-to-Edge Display?

Edge-to-edge display memungkinkan konten aplikasi Anda meluas hingga ke belakang system bars (status bar dan navigation bar), menciptakan pengalaman UI yang lebih imersif dan modern. Mulai Android 15, Google mewajibkan edge-to-edge sebagai standar untuk semua aplikasi.

Solusi Resmi: adjustMarginsForEdgeToEdge

Capacitor menyediakan adjustMarginsForEdgeToEdge opsi konfigurasi khusus untuk tujuan ini. Hal ini tercantum dalam dokumentasi konfigurasi resmi Capacitor, tapi sering terlewatkan.

Cara Konfigurasinya

Tambahkan ini ke capacitor.config.ts atau capacitor.config.json:

import { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  appId: 'com.example.app',
  appName: 'My App',
  webDir: 'dist',
  android: {
    adjustMarginsForEdgeToEdge: 'auto' // or 'force' or 'disable'
  }
};

export default config;

Atau dalam format JSON:

{
  "appId": "com.example.app",
  "appName": "My App",
  "webDir": "dist",
  "android": {
    "adjustMarginsForEdgeToEdge": "auto"
  }
}

Opsi Konfigurasi

Panduan adjustMarginsForEdgeToEdge opsi ini menerima tiga nilai:

adjustMarginsForEdgeToEdge: 'auto'

Fungsinya: Otomatis mengecek Android 15+ dan windowOptOutEdgeToEdgeEnforcement pengaturan tersebut. Menyesuaikan margin secara cerdas berdasarkan perangkat dan konfigurasi.

Terbaik untuk: Kebanyakan aplikasi produksi yang ingin tampilan edge-to-edge di perangkat yang mendukung sambil tetap kompatibel dengan versi Android lama.

2. "force"

adjustMarginsForEdgeToEdge: 'force'

Fungsinya: Memaksa penyesuaian margin untuk edge-to-edge tanpa mempedulikan versi Android atau pengaturan lainnya.

Terbaik untuk: Aplikasi yang ingin tampilan edge-to-edge di semua versi Android yang didukung.

3. "disable"

adjustMarginsForEdgeToEdge: 'disable'

Fungsinya: Menonaktifkan penyesuaian margin otomatis sepenuhnya.

Terbaik untuk: Aplikasi yang mengatur layout edge-to-edge secara manual atau tidak ingin fitur edge-to-edge.

Catatan: Saat ini "disable" adalah default, namun akan berubah menjadi "auto" di Capacitor 8.

Mengapa Ini Penting untuk Android 15+

Mulai Android 15, Google mewajibkan tampilan edge-to-edge sebagai perilaku default. Aplikasi yang tidak menangani layout edge-to-edge dengan benar dapat mengalami masalah UI seperti:

  • Konten tersembunyi di balik system bar
  • Spasi dan padding tidak rapi
  • Tampilan tidak konsisten di tiap device
  • User experience buruk

Dengan menggunakan adjustMarginsForEdgeToEdge config resmi, Anda memastikan app menangani perubahan ini dengan benar tanpa code kustom.

Contoh lengkap

Berikut contoh konfigurasi lengkap untuk app Capacitor modern:

import { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  appId: 'com.example.myapp',
  appName: 'My Awesome App',
  webDir: 'www',
  server: {
    androidScheme: 'https'
  },
  android: {
    // Enable edge-to-edge automatically on supported devices
    adjustMarginsForEdgeToEdge: 'auto',

    // Other Android config options...
    backgroundColor: '#ffffff'
  }
};

export default config;

Pertimbangan CSS

Saat menggunakan tampilan edge-to-edge, Anda mungkin perlu menambahkan CSS untuk menangani safe area:

/* Add padding for system bars */
body {
  padding-top: env(safe-area-inset-top);
  padding-bottom: env(safe-area-inset-bottom);
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}

/* Or use viewport-fit */
meta[name="viewport"] {
  content: "width=device-width, initial-scale=1, viewport-fit=cover";
}

Testing konfigurasi Anda

Setelah mengonfigurasi adjustMarginsForEdgeToEdge, uji aplikasi Anda di:

  1. perangkat Android 15+ - Pastikan konten menyesuaikan system bars dengan benar
  2. Versi Android lama - Pastikan backward compatibility
  3. Berbagai ukuran layar - Verifikasi layout berfungsi di berbagai perangkat
  4. Tema terang dan gelap - Uji kedua mode tema

Kesalahan umum yang harus dihindari

Jangan Gunakan Plugin untuk Ini

Anda tidak perlu plugin pihak ketiga seperti capacitor-edge-to-edge atau sejenisnya. Native config menangani ini dengan rapi. Jika Anda butuh kontrol yang lebih rinci atas system chrome setelah mengaktifkan adjustMarginsForEdgeToEdge, @capgo/capacitor-navigation-bar dan @capgo/home-indicator melengkapi native config tanpa harus menggantinya.

Jangan Campur dengan Implementasi Manual

Jika Anda menggunakan adjustMarginsForEdgeToEdge, hapus semua penanganan window insets manual atau CSS hack yang mungkin telah Anda tambahkan.

Jangan Lupa CSS Safe Area

Config ini menangani penyesuaian margin, tetapi Anda tetap perlu menggunakan CSS safe area insets untuk padding konten yang tepat.

Panduan Migrasi

Jika saat ini Anda menggunakan plugin atau hack untuk edge-to-edge:

  1. Hapus plugin edge-to-edge apa pun dari dependencies Anda
  2. Tambahkan opsi konfigurasi ke capacitor.config.ts
  3. Clean lalu rebuild proyek Android Anda
  4. Uji secara menyeluruh di perangkat target
# Clean the Android project
npx cap sync android
cd android
./gradlew clean
cd ..

# Rebuild
npx cap copy android
npx cap open android

Antisipasi Masa Depan

Ingat bahwa Capacitor 8 akan menjadikan "auto" nilai default. Sebagai persiapan:

  1. Uji dengan "auto" sekarang untuk mendeteksi masalah lebih awal
  2. Perbarui CSS Anda agar safe area tertangani dengan benar
  3. Tinjau layout Anda pada perangkat dengan fitur edge-to-edge

Sumber daya tambahan

Kesimpulan

Tampilan edge-to-edge di Capacitor tidak butuh plugin, hack, atau workaround rumit. adjustMarginsForEdgeToEdge opsi konfigurasi ini memberikan solusi native yang bersih, didukung secara resmi, dan tahan lama.

Mulai dengan "auto" untuk sebagian besar aplikasi, uji secara menyeluruh di berbagai perangkat, dan tambahkan CSS safe area yang sesuai. Aplikasi Anda akan siap untuk Android 15 dan seterusnya dengan upaya minimal.

Ada pertanyaan atau kendala? Komunitas Capacitor dan dokumentasi resmi adalah sumber bantuan tambahan yang luar biasa.

Lanjutkan dari Edge-to-Edge Display di Capacitor Tanpa Plugin

Jika Anda menggunakan Tampilan Edge-to-Edge di Capacitor Tanpa Plugin untuk merencanakan perilaku media dan antarmuka native, hubungkan dengan Menggunakan @capgo/capacitor-live-activities untuk kemampuan native di Menggunakan @capgo/capacitor-live-activities, @capgo/capacitor-live-activities untuk detail implementasi di @capgo/capacitor-live-activities, Menggunakan @capgo/capacitor-video-player untuk kapabilitas native saat menggunakan @capgo/capacitor-video-player, @capgo/capacitor-video-player untuk detail implementasi di @capgo/capacitor-video-player, dan Menggunakan @capgo/capacitor-native-navigation untuk kapabilitas native saat menggunakan @capgo/capacitor-native-navigation.

Live updates untuk aplikasi Capacitor

Saat bug web-layer sudah live, kirim perbaikannya lewat Capgo alih-alih menunggu berhari-hari untuk persetujuan app store. Pengguna mendapat update di background, sementara perubahan native tetap mengikuti jalur review normal.

Terbaru dari Blog kami

Capgo memberikan insight terbaik yang Anda butuhkan untuk membuat aplikasi mobile yang benar-benar profesional.