Bu derste, Android 4.0 (API düzeyi 14) ve sonraki sürümlerde sistem çubuklarının (yani durum ve gezinme çubuklarının) nasıl karartılacağı açıklanmaktadır. Android, önceki sürümlerde sistem çubuklarını karartmak için yerleşik bir yol sağlamaz.
Bu yaklaşımı kullandığınızda içerik yeniden boyutlandırılmaz ancak sistem çubuklarındaki simgeler görsel olarak uzaklaşır. Kullanıcı ekranın durum çubuğuna veya gezinme çubuğu alanına dokunur dokunmaz, her iki çubuk da tamamen görünür hale gelir. Bu yaklaşımın avantajı, çubukların hâlâ mevcut olması ancak ayrıntılarının belirsiz olmasıdır. Böylece, çubuklara kolay erişimden ödün vermeden sürükleyici bir deneyim oluşturulur.
Durum ve Gezinme Çubuklarını karartma
Durum ve gezinme çubuklarını, SYSTEM_UI_FLAG_LOW_PROFILE
işaretini kullanarak aşağıdaki gibi karartabilirsiniz:
Kotlin
// This example uses decor view, but you can use any visible view. activity?.window?.decorView?.apply { systemUiVisibility = View.SYSTEM_UI_FLAG_LOW_PROFILE }
Java
// This example uses decor view, but you can use any visible view. View decorView = getActivity().getWindow().getDecorView(); int uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFILE; decorView.setSystemUiVisibility(uiOptions);
Kullanıcı durum veya gezinme çubuğuna dokunur dokunmaz, işaret temizlenir ve çubukların soluk renkte gösterilmesine neden olur. İşaretleri temizledikten sonra, çubukları tekrar karartmak isterseniz uygulamanızın işareti sıfırlaması gerekir.
Şekil 1'de, gezinme çubuğu karartılan bir galeri resmi gösterilmektedir (Galeri uygulamasının durum çubuğunu tamamen gizlediğini ancak çubuğu karartmadığını unutmayın). Gezinme çubuğunun (resmin sağ tarafında) üzerinde gezinme denetimlerini temsil eden soluk beyaz noktalar olduğuna dikkat edin:
Şekil 2'de sistem çubukları görünen aynı galeri resmi gösterilmektedir:
Durum ve Gezinme Çubuklarını Göster
setSystemUiVisibility()
ile ayarlanan işaretleri programatik olarak temizlemek isterseniz bunu aşağıdaki gibi yapabilirsiniz:
Kotlin
activity?.window?.decorView?.apply { // Calling setSystemUiVisibility() with a value of 0 clears // all flags. systemUiVisibility = 0 }
Java
View decorView = getActivity().getWindow().getDecorView(); // Calling setSystemUiVisibility() with a value of 0 clears // all flags. decorView.setSystemUiVisibility(0);