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 parlaklığı azaltı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 küçültülü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 sunulur.
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 bayrak silinir ve çubuklar karartılır. İşaret temizlendikten sonra, çubukları tekrar karartmak istiyorsanız uygulamanızın işareti sıfırlaması gerekir.
Şekil 1'de, gezinme çubuğunun karartıldığı bir galeri resmi gösterilmektedir (Galeri uygulamasının durum çubuğunu tamamen gizlediğini, ancak karartmadığını unutmayın). Gezinme çubuğunun (görüntünün sağ tarafında) üzerinde gezinme denetimlerini temsil etmek için soluk renkli beyaz noktalar bulunduğuna dikkat edin:
Şekil 2'de aynı galeri resmi, ancak sistem çubukları görüntülenmemiş şekilde gösterilmiştir:
Durum ve Gezinme Çubuklarını Göster
setSystemUiVisibility()
ile ayarlanan işaretleri programlı bir şekilde temizlemek isterseniz bunu aşağıdaki şekilde 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);