Uygulamamın durum çubuğunun rengini, siyah simgelerle beyaz olacak şekilde değiştirmek istiyorum (varsayılan beyaz simgeli siyah yerine). Bunu yapmanın bir yolu var mı?
Uygulamamın durum çubuğunun rengini, siyah simgelerle beyaz olacak şekilde değiştirmek istiyorum (varsayılan beyaz simgeli siyah yerine). Bunu yapmanın bir yolu var mı?
Yanıtlar:
Android M (api seviyesi 23) ile bunu android:windowLightStatusBar
özniteliğe sahip temadan elde edebilirsiniz .
Düzenle :
Pdroid'in de belirttiği gibi, bu aynı zamanda programlı olarak da gerçekleştirilebilir:
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
Beyaz durum çubuğunu gri simgelerle yapmak mümkündür, örneğin SDK> = 23 için bu şekilde ( dokümanlara bakın ):
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:windowLightStatusBar">true</item>
</style>
styles.xml dosyanızda ve colorPrimary
beyaza veya programlı olarak ayarlayın:
getWindow().setStatusBarColor(Color.WHITE);
SDK >= 23
ama @being_sohelkhan nedense orijinal cevabımı düzenledi ... stackoverflow.com/posts/46897243/revisions
Kotlin'deki etkinliğime yeni eklendi:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
window.decorView.systemUiVisibility =View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
window.statusBarColor = Color.WHITE
}
sadece bunu tarzına ekle
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
seti android: windowDrawsSystemBarBackgrounds için gerçek * . Bu, açıklaması aşağıda verilen bir bayraktır:
Bu Pencerenin sistem çubuklarının arka planını çizmekten sorumlu olup olmadığını gösteren bayrak. True ise ve pencere kayan değilse, sistem çubukları şeffaf bir arka planla çizilir ve bu penceredeki ilgili alanlar {@link android.R.attr # statusBarColor} ve {@link android.R'de belirtilen renklerle doldurulur. .attr # navigationBarColor}. {@Link android.view.WindowManager.LayoutParams # FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS} 'a karşılık gelir.
Kotlin'de bu şekilde kullanabilirsiniz
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
Daha onCreate()
önce aradığınızdan emin olun.setContentView()
Bunu manuel olarak özelleştirmek için tüm rom üzerinde bir kontrole sahip değilseniz, bunun böyle bir yolu yoktur. Yapmanızı önerdiğim şey, google sürücüsünün yaptığı gibi temanız aracılığıyla durum çubuğu rengi için açık gri bir renk kullanmaktır.
Düzenleme: Lütfen android M'de değiştiği için @Wrekcker yanıtına bakın.
Sadece bunu kullandım
parent="Theme.AppCompat.Light.NoActionBar"
app:theme="@style/AppThemeWithoutActionBarwithwhitehed"
android:background="#fff"
Ben de aynı sorunu yaşadım.
RelativeLayout gibi normal bir düzen kullandığımda işe yaramadığını fark ettim. Ama buna CordinatorLayout gibi destek kitaplığından geldiğimde nihayet çalışmaya başladı. Bunu dene.
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".Activities.Activity">
<android.support.v7.widget.Toolbar
android:id="@+id/tb_activity"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.CoordinatorLayout>
<********* DİĞER ÖZELLİKLERİN ALTINDA ************>
stilleri
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.NoActionBar" parent="AppTheme">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
Ve tezahürde
<activity
android:name=".Activities.MyActivity"
android:label="Activity"
android:theme="@style/AppTheme.NoActionBar">
</activity>