Saya tidak bisa mengubah warna tombol kembali. Saya menggunakan desain material toolbar. Di aplikasi saya, saya menerapkan latar belakang hitam bilah alat tetapi desain belakang menjadi hitam secara default, itulah sebabnya saya hanya ingin mengubah warna tombol kembali ini. Tolong beri saya solusi.
Terima kasih
Jawaban:
gunakan gaya ini
<style name="Theme.MyFancyTheme" parent="android:Theme.Holo"> <item name="android:homeAsUpIndicator">@drawable/back_button_image</item> </style>
sumber
Anda dapat menambahkan gaya ke styles.xml Anda,
<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>
dan tambahkan ini sebagai tema ke toolbar Anda di toolbar layout.xml menggunakan app: theme , periksa di bawah
<?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>
sumber
Berikut adalah cara termudah untuk mendapatkan Tema Terang dan Gelap untuk
app:theme
Toolbar. Anda harus mengubah nilai dari tag Toolbarsumber
Theme.AppCompat.Light.DarkActionBar
dalam kasus saya.Untuk Judul Toolbar putih dan panah Putih, gunakan tema berikut:
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
sumber
Gunakan ini:
<style name="BaseTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorControlNormal">@color/white</item> </style>
sumber
Coba ini,
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);
sumber
Anda tidak perlu mengubah gaya untuk itu. Setelah mengatur toolbar Anda sebagai actionbar, Anda dapat membuat kode seperti ini
android.getSupportActionBar().setDisplayHomeAsUpEnabled(true); android.getSupportActionBar().setHomeAsUpIndicator(R.drawable.back); //here back is your drawable image
Tetapi Anda tidak dapat mengubah warna panah belakang dengan metode ini
sumber
Jika Anda menginginkan tombol kembali berwarna putih (←) dan judul bilah alat berwarna putih, ikuti ini:
<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>
Ubah tema dari
Dark
menjadiLight
jika Anda ingin tombol kembali hitam (←) dan judul bilah alat hitam.sumber
Anda dapat menggunakan ikon Anda sendiri dengan menggunakan
app:navigationIcon
dan untuk warna judulapp:titleTextColor
Contoh:
<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" />
sumber
app:navigationIcon="@drawable/ic_back_black"
Cukup gunakan
MaterialToolbar
dan timpa warna default:<com.google.android.material.appbar.MaterialToolbar style="@style/Widget.MaterialComponents.Toolbar.Primary" android:theme="@style/MyThemeOverlay_Toolbar" ..>
dengan:
<style name="MyThemeOverlay_Toolbar" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary"> <!-- color used by navigation icon and overflow icon --> <item name="colorOnPrimary">@color/...</item> </style>
Jika Anda menggunakan
androidx.appcompat.widget.Toolbar
atauMaterialToolbar
dengan gaya default (Widget.MaterialComponents.Toolbar
) Anda dapat menggunakan:<androidx.appcompat.widget.Toolbar android:theme="@style/MyThemeOverlay_Toolbar2"
dengan:
<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>
sumber
Saya pikir jika tema harus menghasilkan beberapa masalah tetapi panah hitamnya diatur secara dinamis. Jadi saya menyarankan untuk mencoba yang ini.
sumber
Saya menggunakan
<style name="BaseTheme" parent="Theme.AppCompat.Light.NoActionBar>
tema di aplikasi android saya dan di tema NoActionBar,colorControlNormal
properti digunakan untuk mengubah warna ikon navigasi default panah tombol Kembali di toolbar sayastyles.xml
<style name="BaseTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorControlNormal">@color/your_color</item> </style>
sumber
Sederhana dan tidak perlu khawatir
<?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>
sumber
Saya melakukannya dengan cara ini menggunakan pustaka Komponen Material:
<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>
sumber
Anda dapat menambahkan kode ini ke dalam kelas java Anda. Tetapi Anda harus membuat aset vektor sebelumnya, sehingga Anda dapat menyesuaikan kembali panah Anda.
sumber
Untuk menata Toolbar di Android 21+ ini sedikit berbeda.
<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>
sumber
Jika Anda ingin warna belakang sistem putih maka Anda dapat menggunakan kode ini
<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>
Catatan: -
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
adalah kuncinyaTempel ada di aktivitas Anda di mana Anda ingin menampilkan tombol kembali di bilah tindakan
final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_notification); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(false);
sumber