Android'de Araç Çubuğu geri düğmesinin rengi nasıl değiştirilir?


100

Geri düğmesinin rengini değiştiremedim. Araç çubuğu malzeme tasarımı kullanıyorum. Uygulamamda araç çubuğunun siyah arka planını uyguluyorum ancak arka tasarım varsayılan olarak siyah oluyor, bu yüzden bu geri düğmesinin rengini değiştirmek istiyorum. Lütfen bana çözümler verin.

Teşekkür ederim


3
<style name = "MyMaterialTheme.Base" parent = "Theme.AppCompat.Light.DarkActionBar">
Nazima Kauser MMF

Yanıtlar:


80

bu stili kullan

<style name="Theme.MyFancyTheme" parent="android:Theme.Holo">
    <item name="android:homeAsUpIndicator">@drawable/back_button_image</item>
</style>

bu stili kullanıyorum. bu tarzda neyi değiştirmem gerekiyor?
Nazima Kauser MMF

geri düğmesi için özel resim dosyalarını kullanabilirsiniz. sadece `` @ drawable / your_image '' olarak çağırın
Akhil

Bunu yapmanın en iyi yolu budur. Destek sürümü çekilebilir kaynağı sık sık değiştirdiğinden, rengi değiştirmek için R.drawable.abc_ic_ab_back_mtrl_am_alpha kullanımının riskleri vardır.
Mostafa Imran

196

Styles.xml dosyanıza bir stil ekleyebilirsiniz,

<style name="ToolbarTheme" parent="@style/ThemeOverlay.AppCompat.ActionBar">
  <!-- Customize color of navigation drawer icon and back arrow --> 
  <item name="colorControlNormal">@color/toolbar_color_control_normal</item>
</style>

ve bunu app: theme kullanarak toolbar layout.xml'deki araç çubuğunuza tema olarak ekleyin , aşağıya bakın

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    app:theme="@style/ToolbarTheme" >
</android.support.v7.widget.Toolbar>

4
Bir cazibe gibi çalıştı ve kulağa en uygunu geliyor.
Vijay Kumar Kanta

1
Lanet olsun. İşe yarıyor. Şimdi sadece iOS için eşdeğer bir şeye ihtiyacım var. Teşekkürler!
Ernesto

Buna Araç ÇubuğuTeması demek daha iyi olur
Leo Droidcoder

1
Benim için <style name = "ToolbarTheme" parent = "@ style / Theme.AppCompat.NoActionBar"> çalıştı. Ana uygulama temam <style name = "AppTheme" parent = "Theme.AppCompat.NoActionBar">
Yar

3
İşe yaradı. Bu, kabul edilen cevaptan daha uygundur.
Domenico

87

app:themeAraç Çubuğu için Açık ve Koyu Tema elde etmenin en basit yolu. Araç Çubuğu etiketinin değerini değiştirmeniz gerekir.

  • İçin Siyah Çubuğu Başlık ve Siyah Yukarı ok , sizin araç çubuğu aşağıdaki tema uygulamalıdır:

app: theme = "@ style / ThemeOverlay.AppCompat.Light"

Siyah Araç Çubuğu Başlığı ve Yukarı Ok

  • İçin Beyaz Çubuğu Başlık ve Beyaz Yukarı ok , sizin araç çubuğu aşağıdaki tema uygulamalıdır:

app: theme = "@ style / ThemeOverlay.AppCompat"

Beyaz Araç Çubuğu Başlığı ve Yukarı Ok


66
Beyaz Araç Çubuğu Başlığı ve Beyaz Yukarı ok için aşağıdaki temayı kullanın: android: theme = "@ style / ThemeOverlay.AppCompat.Dark.ActionBar"
Amol Patil

Anlamaya çalışıyorum, neden ThemeOverlay olarak adlandırıldı? Neden burada sadece basit Theme.AppCompat.Dark.ActionBar'ı kullanamıyorum?
Gaket

@ ch3tanz ActionBar veya Araç Çubuğu mu kullanıyorsunuz? Neden ActionBar stillerini kullanıyorsunuz?
f470071

@ f470071 Araç Çubuğu kullanıyorum. Tüm sürümlerde destekleyecek olan sadece stil. Uygulamanız Lollipop'un üzerini hedefliyorsa Materyal Tasarım stillerini kullanabilirsiniz.
ch3tanz

Theme.AppCompat.Light.DarkActionBarbenim durumumda.
Evi Song

30

Beyaz Araç Çubuğu Başlığı ve Beyaz Yukarı ok için aşağıdaki temayı kullanın:

android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"

Çok teşekkürler, her şeyden önce çözüm sadece benim için çalışıyor.
Md Juyel Rana

21

Bunu kullan:

<style name="BaseTheme" parent="Theme.AppCompat.Light.NoActionBar">
  <item name="colorControlNormal">@color/white</item> 
</style>

5
Bu kabul edilmelidir. Buradaki her yanıt, simgenin rengini değil, yalnızca simgeyi değiştirmektir.
Michał Jabłoński

12

Bunu dene,

final Drawable upArrow = getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
upArrow.setColorFilter(getResources().getColor(R.color.grey), PorterDuff.Mode.SRC_ATOP);
getSupportActionBar().setHomeAsUpIndicator(upArrow);

6

Bunun için stilini değiştirmek zorunda değilsin. Araç çubuğunuzu eylem çubuğu olarak ayarladıktan sonra, bunun gibi kodlayabilirsiniz

android.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
android.getSupportActionBar().setHomeAsUpIndicator(R.drawable.back);
//here back is your drawable image

Ancak bu yöntemle geri okunun rengini değiştiremezsiniz.


6

Beyaz geri düğmesi (←) ve beyaz araç çubuğu başlığı istiyorsanız, şunu izleyin:

<android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
    </android.support.design.widget.AppBarLayout>

Değiştir tema Darkiçin Lightsiyah geri düğmesine (←) ve siyah araç çubuğu başlığını istiyorum.


6

MaterialToolbarVarsayılan renkleri kullanın ve geçersiz kılın:

    <com.google.android.material.appbar.MaterialToolbar
        style="@style/Widget.MaterialComponents.Toolbar.Primary"
        android:theme="@style/MyThemeOverlay_Toolbar"
        ..>

ile:

  <style name="MyThemeOverlay_Toolbar" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
    <!-- color used by navigation icon and overflow icon -->
    <item name="colorOnPrimary">@color/...</item>
  </style>

görüntü açıklamasını buraya girin

Varsayılan stilde ( ) androidx.appcompat.widget.Toolbarveya ile kullanıyorsanız şunları kullanabilirsiniz:MaterialToolbarWidget.MaterialComponents.Toolbar

<androidx.appcompat.widget.Toolbar
    android:theme="@style/MyThemeOverlay_Toolbar2"

ile:

  <style name="MyThemeOverlay_Toolbar2" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
    <!-- This attributes is used by title -->
    <item name="android:textColorPrimary">@color/white</item>

    <!-- This attributes is used by navigation icon and overflow icon -->
    <item name="colorOnPrimary">@color/secondaryColor</item>
  </style>

5

app:navigationIconBaşlık rengi için ve kullanarak kendi simgenizi kullanabilirsiniz.app:titleTextColor

Misal:

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?actionBarSize"
        android:background="@color/colorPrimary"
        app:navigationIcon="@drawable/ic_arrow_back_white_24dp"
        app:titleTextColor="@color/white" />

Bu benim için çalıştı, bu satırı kullanarak herhangi bir simgeyi ayarladıapp:navigationIcon="@drawable/ic_back_black"
Abhishek

Glade yardımcı oldu.
Mohamed Nageh

4

Bence temanın bir sorun yaratması gerekiyorsa, ancak dinamik olarak ayarlanan siyah ok. Bu yüzden bunu deneyin.

Drawable backArrow = getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
backArrow.setColorFilter(getResources().getColor(R.color.md_grey_900), PorterDuff.Mode.SRC_ATOP);
getSupportActionBar().setHomeAsUpIndicator(backArrow);

2
Çözümünüzün @Parth Bhayani'den farkı nedir?
CoolMind

3

Ben kullanıyorum <style name="BaseTheme" parent="Theme.AppCompat.Light.NoActionBar>benim android uygulamasında tema ve NoActionBar tema, colorControlNormalmülkiyet benim araç çubuğundaki navigasyon simgesinin varsayılan Geri düğmesi ok rengini değiştirmek için kullanılır

styles.xml

<style name="BaseTheme" parent="Theme.AppCompat.Light.NoActionBar">
  <item name="colorControlNormal">@color/your_color</item> 
</style>

2

Basit ve Endişe Yok

 <?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.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:titleTextColor="@color/white"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

        </android.support.design.widget.AppBarLayout>

        <include layout="@layout/testing" />

    </android.support.design.widget.CoordinatorLayout>

2

Materyal Bileşenleri kitaplığını kullanarak şu şekilde yaptım:

<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
    <item name="drawerArrowStyle">@style/AppTheme.DrawerArrowToggle</item>
</style>

<style name="AppTheme.DrawerArrowToggle" parent="Widget.AppCompat.DrawerArrowToggle">
    <item name="color">@android:color/white</item>
</style>

bu çalışır: hamburger menü simgesinin rengini değiştirmenize izin verir.
lnaie

1

Bu kodu java sınıfınıza ekleyebilirsiniz. Ancak daha önce bir vektör varlığı oluşturmalısınız, böylece okunuzu geri özelleştirebilirsiniz.

actionBar.setHomeAsUpIndicator(R.drawable.ic_arrow_back_black_24dp);

0

Araç Çubuğunu Android 21+ üzerinde biçimlendirmek biraz farklıdır.

<style name="DarkTheme.v21" parent="DarkTheme.v19">
        <!-- toolbar background color -->
        <item name="android:navigationBarColor">@color/color_primary_blue_dark</item>
        <!-- toolbar back button color -->
        <item name="toolbarNavigationButtonStyle">@style/Toolbar.Button.Navigation.Tinted</item>
    </style>

    <style name="Toolbar.Button.Navigation.Tinted" parent="Widget.AppCompat.Toolbar.Button.Navigation">
        <item name="tint">@color/color_white</item>
    </style>

-1

İsterseniz sistem geri rengini beyaz o zaman bu kodu kullanabilirsiniz

<com.google.android.material.appbar.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:elevation="0dp"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar_notification"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:contentInsetLeft="0dp"
            app:contentInsetStart="0dp"
            app:contentInsetStartWithNavigation="0dp">

            <include layout="@layout/action_bar_notification" />
        </androidx.appcompat.widget.Toolbar>
    </com.google.android.material.appbar.AppBarLayout>

Not: - android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" anahtardır

Yapıştır, işlem çubuğunda geri düğmesini göstermek istediğiniz yerdedir.

final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_notification);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(false);
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.