Saya bermigrasi dari ActionBar
ke Toolbar
dalam aplikasi saya. Tapi saya tidak tahu cara menampilkan dan mengatur acara klik di Back Arrow on Toolbar
seperti yang saya lakukan Actionbar
.
Dengan ActionBar
, saya menelepon mActionbar.setDisplayHomeAsUpEnabled(true)
. Tetapi tidak ada metode yang mirip seperti ini.
Adakah yang pernah menghadapi situasi ini dan entah bagaimana menemukan cara untuk menyelesaikannya?
Jawaban:
Jika Anda menggunakan,
ActionBarActivity
maka Anda dapat memberi tahu Android untuk menggunakanToolbar
yangActionBar
seperti ini:Dan kemudian menelepon ke
akan bekerja. Anda juga dapat menggunakannya dalam Fragmen yang terlampir
ActionBarActivities
Anda dapat menggunakannya seperti ini:Jika Anda tidak menggunakan
ActionBarActivities
atau jika Anda ingin mendapatkan panah kembali padaToolbar
yang tidak ditetapkan sebagai AndaSupportActionBar
maka Anda dapat menggunakan yang berikut:Jika Anda menggunakan
android.support.v7.widget.Toolbar
, maka Anda harus menambahkan kode berikut keAppCompatActivity
:sumber
R.drawable.abc_ic_ab_back_mtrl_am_alpha
keduanyaR.drawable.ic_action_back
.toolbar.setNavigationIcon(android.support.v7.appcompat.R.drawable.abc_ic_ab_back_material);
Saya melihat banyak jawaban tetapi ini milik saya yang tidak disebutkan sebelumnya. Ini bekerja dari API 8+.
sumber
onOptionItemSelected()
Suara positif untuk ini melengkapi apa yang belum dicakup oleh MrEngineer13 dalam jawabannya.Ada banyak cara untuk mencapainya, inilah favorit saya:
Tata letak:
Aktivitas:
sumber
setNavigationOnClickListener()
Anda dapat menambahkancase android.R.id.home:
di dalam 'onOptionsItemSelected () `.case android.R.id.home
tidak bekerja untuk saya. jadi setelah mencari sebentar, jawaban Anda berhasil .. terima kasih.Anda dapat menggunakan bilah alat metode setNavigationIcon. Android Doc
sumber
setNavigationOnClickListener()
telah ditambahkan di api level 21 ke atasJika Anda tidak ingin membuat kebiasaan
Toolbar
, Anda dapat melakukannya seperti iniPadamu
AndroidManifest.xml
Anda juga dapat menempatkan ini
android:theme="@style/Theme.AppCompat.Light"
pada<aplication>
tag, untuk diterapkan ke semua kegiatansumber
if (item.getItemId() == android.R.id.home)
Dan untuk API 21+
android:navigationIcon
sumber
Saya menggunakan metode ini dari Dokumentasi Pengembang Google :
Jika Anda mendapatkan pengecualian penunjuk nol, itu bisa bergantung pada tema. Coba gunakan tema lain dalam manifes atau gunakan ini sebagai alternatif:
Kemudian di manifes, tempat saya menyetel aktivitas induk untuk aktivitas saat ini:
Saya harap ini akan membantu Anda!
sumber
getSupportActionBar()
berhasil. Terima kasih!Jika Anda sedang menggunakan
AppCompatActivity
dan telah turun jalan tidak menggunakannya, karena Anda ingin tidak mendapatkan otomatisActionBar
yang diberikannya, karena Anda ingin memisahkanToolbar
, karena kebutuhan Material Desain danCoordinatorLayout
atauAppBarLayout
, kemudian, pertimbangkan ini:Anda masih dapat menggunakan
AppCompatActivity
, Anda tidak perlu berhenti menggunakannya hanya agar Anda dapat menggunakan<android.support.v7.widget.Toolbar>
dalam xml Anda. Matikan saja gaya action bar sebagai berikut:Pertama, dapatkan gaya dari salah satu tema NoActionBar yang Anda sukai di dalam Anda
styles.xml
, saya gunakanTheme.AppCompat.Light.NoActionBar
seperti ini:Di manifes Aplikasi Anda, pilih tema gaya anak yang baru saja Anda tentukan, seperti:
Di Activity Xml Anda, jika bilah alat didefinisikan seperti ini:
Kemudian, dan ini adalah bagian penting, Anda mengatur bilah tindakan dukungan ke AppCompatActivity yang Anda perluas, sehingga bilah alat di xml Anda, menjadi bilah tindakan. Saya merasa ini adalah cara yang lebih baik, karena Anda bisa melakukan banyak hal yang memungkinkan ActionBar, seperti menu, judul aktivitas otomatis, penanganan pemilihan item, dll. Tanpa harus menambahkan penangan klik khusus, dll.
Di OverCreate aktivitas Anda, lakukan hal berikut:
sumber
sumber
Cara sederhana dan mudah untuk menampilkan tombol kembali pada toolbar
Tempel kode ini dalam metode onCreate
Tempelkan metode override ini di luar metode onCreate
sumber
Di Kotlin akan seperti itu
sumber
Anda dapat melakukannya dengan mudah.
Kredit: https://freakycoder.com/android-notes-24-how-to-add-back-button-at-toolbar-941e6577418e
sumber
Dalam
AppCompatActivity
contohnya Anda bisa melakukannyasumber
Di file manifes Anda untuk aktivitas tempat Anda ingin menambahkan tombol kembali, kami akan menggunakan properti android: parentActivityName
PS Atribut ini diperkenalkan di API Level 16.
sumber
Ini bekerja dengan sempurna
sumber
Pertama, Anda perlu menginisialisasi bilah alat:
lalu panggil tombol kembali dari bilah tindakan:
sumber
Jika Anda ingin mendapatkan panah kembali pada Toolbar yang tidak ditetapkan sebagai SupportActionBar Anda:
(kotlin)
untuk mendapatkan res dari atribut:
sumber
Tambahkan ini ke xml aktivitas di folder tata letak:
Jadikan bilah alat dapat diklik, tambahkan ini ke metode onCreate:
sumber
Mungkin cara yang lebih dapat diandalkan untuk mendapatkan ikon dari tema Anda (jika tidak menggunakan bilah alat sebagai bilah tindakan):
Untuk mengubah atribut tema menjadi drawable, saya menggunakan fungsi ekstensi:
sumber
Jika Anda menggunakan DrawerLayout dengan ActionBarDrawerToggle , maka untuk menampilkan tombol Kembali alih-alih tombol Menu (dan sebaliknya), Anda perlu menambahkan kode ini di Aktivitas Anda:
Jadi ketika Anda perlu menampilkan tombol Kembali daripada tombol Menu , panggil showBackInToolbar (true) , dan jika Anda membutuhkan tombol Menu , panggil showBackInToolbar (false) .
Anda dapat menghasilkan panah kembali (ic_arrow_back_white_32dp) di sini , cari arrow_back di bagian Clipart (gunakan default 32dp dengan padding 8dp). Cukup pilih warna yang Anda inginkan.
sumber
Anda selalu dapat menambahkan a
Relative layout
atau aLinear Layout
diToolbar
dan menempatkan tampilan Gambar untuk ikon kembali atau menutup ikon di mana saja di bilah alat sesuka AndaMisalnya saya telah menggunakan tata letak Relatif di toolbar saya
Dan terlihat seperti ini:
Anda dapat menambahkan listener klik pada tampilan gambar itu dari Activity atau fragmen seperti ini.
sumber
Dengan Kotlin menjadi:
Xml:
Dalam Aktivitas Anda: -
sumber
Jika Anda menggunakan JetPack Navigation.
Berikut adalah tata letak untuk MainActivity
Setel bilah alat Anda di aktivitas Anda seperti di bawah ini di onCreate () dari kelas Activity Anda.
setupActionBarWithNavController (navController) Akan membuat tombol kembali pada toolBar jika diperlukan dan menangani fungsi backButton. Jika Anda perlu menulis fungsionalitas CustomBack, buat callBack seperti di bawah ini pada metode onCreate () fragmen Anda
Dari Dokumentasi: https://developer.android.com/guide/navigation/navigation-custom-back
sumber
Jika Anda menggunakan
androidx.appcompat.app.AppCompatActivity
gunakan saja:Kemudian tentukan saja dalam
Manifest.xml
Aktivitas induk.Alih-alih jika Anda menggunakan
Toolbar
dan Anda ingin perilaku khusus, gunakan saja:dan dalam Aktivitas Anda:
sumber