Saya mencoba mencari cara yang tepat untuk menggunakan font khusus untuk judul bilah alat, dan menempatkannya di bilah alat (persyaratan klien).
Saat ini, saya menggunakan ActionBar tua yang baik, dan saya sedang mengatur judul menjadi nilai kosong, dan menggunakan setCustomView
untuk meletakkan font TextView kustom saya dan pusatkan menggunakan ActionBar.LayoutParams.
Apakah ada cara yang lebih baik untuk melakukan itu? Menggunakan Toolbar baru sebagai ActionBar saya.
style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
( lihat jawaban ini ).Judul ToolBar bisa ditata. Kustomisasi apa pun yang Anda buat harus dilakukan dalam tema. Saya akan memberi Anda sebuah contoh.
Tata letak bilah alat:
Gaya:
sumber
TextView
agak sedikit berantakan, tetapi jawaban refleksi itu benar-benar jahat.Ini hanya untuk membantu menggabungkan semua bagian menggunakan jawaban @ MrEngineer13 dengan @Jonik dan komentar @Rick Sanchez dengan urutan yang tepat untuk membantu mencapai judul yang terpusat dengan mudah !!
Tata letak dengan
TextAppearance.AppCompat.Widget.ActionBar.Title
:Cara mencapai dengan urutan yang benar:
Tolong jangan lupa untuk menjawab @ MrEngineer13 jawaban !!!
Berikut adalah contoh proyek ToolbarCenterTitleSample
Berharap bisa membantu orang lain;)
sumber
Scrolling Activity
?kami tidak memiliki akses langsung ke judul ToolBar, TextView, jadi kami menggunakan refleksi untuk mengaksesnya.
sumber
mTitleTextView
menjadiabcde12345
?Berikut ini adalah pendekatan bergantung teks judul untuk mencari
TextView
contoh dariToolbar
.sumber
Tentukan kelas berikut:
... lalu gunakan saja alih-alih
Toolbar
seperti biasa :Anda masih membutuhkan 2 baris kode ini di
Activity
(sesuai dengan standarToolbar
) Anda:Itu dia! Anda tidak perlu menyembunyikan judul rata kiri, tidak perlu menduplikasi kode XML yang sama berulang-ulang, dll, cukup gunakan
CenteredToolbar
seperti jika itu defaultToolbar
. Anda juga dapat mengatur font khusus Anda secara terprogram karena sekarang Anda memiliki akses langsung keTextView
. Semoga ini membantu.sumber
centeredTitleTextView.setTextColor(...)
harus bekerjaLayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)
?Tidak ada yang menyebutkan ini, tetapi ada beberapa atribut untuk
Toolbar
:app:titleTextColor
untuk mengatur warna teks judulapp:titleTextAppearance
untuk mengatur tampilan teks judulapp:titleMargin
untuk mengatur marginDan ada margin sisi-spesifik lainnya
marginStart
, seperti , dll.sumber
<style name="customFontTextAppearanceStyle"> <item name="android:textSize">18sp</item> <item name="android:typeface">monospace</item>
dan terapkan dalam toolbarapp:titleTextAppearance="@styles/customFontTextAppearanceStyle"
app:titleTextAppearanc="style name"
diandroid.support.v7.widget.Toolbar
TAGSaya menggunakan solusi ini:
sumber
Tanpa bilah alat TextView kita dapat menyesuaikan font dengan menggunakan kode di bawah ini
sumber
sumber
Tata letak:
Kode:
sumber
Saya memecahkan solusi ini, Dan ini adalah kode berikut:
Dan Anda dapat mengubah judul / label, di Aktivitas, tulis kode di bawah ini:
TextView mTitle = (TextView) toolbarTop.findViewById (R.id.toolbar_title); mTitle.setText ("@ string / ....");
sumber
Anda bisa menggunakan seperti berikut ini
sumber
Cara yang sangat cepat dan mudah untuk menyetel font khusus adalah menggunakan kustom
titleTextAppearance
denganfontFamily
:Tambahkan ke styles.xml :
Di folder res Anda, buat folder font (Mis: varela_round_regular.ttf )
Baca panduan resmi untuk mengetahui lebih lanjut https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html
sumber
Saya tidak tahu apakah ada yang berubah di perpustakaan appcompat tapi itu cukup sepele, tidak perlu refleksi.
sumber
Solusi yang saya gunakan untuk masalah ini:
Untuk pusat gravitasi, saya pikir akan perlu untuk mengubah tata letak params untuk match_parent secara horizontal dan kemudian:
sumber
Perbarui dari jawaban @ MrEngineer13: untuk meluruskan pusat judul dalam hal apa pun, termasuk ikon Hamburger, menu opsi, Anda dapat menambahkan
FrameLayout
bilah alat di dalam seperti ini:sumber
Dalam XML coba ini:
Dalam kode:
sumber
Meskipun menambahkan tampilan teks ke bilah alat dapat menyelesaikan masalah pembatasan gaya judul, ada masalah dengannya. Karena kami tidak menambahkannya ke tata letak, kami tidak memiliki terlalu banyak kendali atas lebarnya. Kami dapat menggunakan wrap_content atau match_parent.
Sekarang perhatikan skenario di mana kita memiliki searchView sebagai tombol di tepi kanan bilah alat. Jika konten judul lebih, itu akan pergi di atas tombol mengaburkannya. Tidak ada cara untuk mengontrol kekurangan pengaturan lebar label ini dan ini adalah sesuatu yang tidak ingin Anda lakukan jika Anda ingin memiliki desain yang responsif.
Jadi, inilah solusi yang berfungsi untuk saya yang sedikit berbeda dari menambahkan tampilan teks ke bilah alat. Alih-alih itu, tambahkan bilah alat dan tampilan teks ke tata letak relatif dan pastikan bahwa tampilan teks di atas bilah alat. Kemudian kita dapat menggunakan margin yang sesuai dan memastikan tampilan teks muncul di tempat yang kita inginkan.
Pastikan Anda mengatur bilah alat untuk tidak menampilkan judul.
Berikut ini adalah XML untuk solusi ini:
Memecahkan masalah @ ankur-chaudhary yang disebutkan di atas.
sumber
Karena
android.support.v7.appcompat 24.2
Toolbar
memiliki metodesetTitleTextAppearance
dan Anda dapat mengatur font-nya tanpa eksternaltextview
.buat gaya baru di styles.xml
dan gunakan itu
sumber
Saya menghabiskan beberapa hari mencari solusi universal. Toolbar saya bekerja dengan menu android dan ikon nav.
Pada awalnya, Anda perlu membuat kelas toolbar kustom. Kelas ini harus memiliki posisi menghitung posisi tengah (paddings):
Kedua, Anda perlu membuat toolbar layout:
Itu saja
sumber
Coba ambil Bilah Alat dan beri judul pada tampilan terpisah. Ambil tampilan di ujung kanan dan beri bobot sama dengan bobot bilah alat. Dengan cara ini judul Anda akan muncul di tengah.
sumber
Anda dapat memasukkan kode ini dalam file xml Anda
sumber
sumber
Pengaturan
android:gravity="center"
bekerja untuk sayaTidak ada penataan gaya apa pun. Toolbar pada dasarnya yang
ViewGroup
perlu Anda lakukan adalah mengatur gravitasi elemen di dalamnya.sumber
androidx.appcompat.widget.Toolbar
untuk font kustom di bilah alat, Anda dapat mengganti font textView dengan gaya dan kemudian setiap textView di aplikasi Anda juga font judul bilah alat diubah secara otomatis saya mengujinya di android studio 3.1.3
dalam gaya melakukannya:
dan kemudian di tema Anda gunakan ini:
sumber
Saya menemukan cara lain untuk menambahkan toolbar kustom tanpa kode Java / Kotlin adicional.
Pertama: buat XML dengan tata letak bilah alat khusus Anda dengan AppBarLayout sebagai induknya:
Kedua: Sertakan bilah alat di tata letak Anda:
sumber
Seperti yang saya lihat, Anda memiliki dua opsi:
1) Edit XML toolbar. Ketika Toolbar Anda ditambahkan dalam XML, biasanya terlihat seperti itu:
jika Anda ingin menyesuaikannya cukup hapus '/' pada akhirnya dan buat seperti itu:
dengan cara itu Anda dapat memiliki bilah alat dan menyesuaikan tampilan teks dan logo.
2) Programrticly mengubah tampilan teks asli dan ikon:
pastikan bilah alat Anda tidak nol sebelum Anda mengatur apa pun di dalamnya.
sumber
Anda dapat memiliki kustom
TextView
di bilah alat seperti ini:Jadi, ini akan memusatkan teks. Jika Anda ingin menambahkan font khusus ke normal
Toolbar
, buat<style>
:Dan tambahkan ke bilah alat:
Untuk tampilan teks di toolbar, Anda dapat mendefinisikannya dengan
fontFamily
atribut:sumber
Saya menghadapi masalah yang sama, diperbaiki dengan melakukan ini di MainActivity
Dan Dalam Fragmen
sumber