Saya mencoba membuat aplikasi sederhana menggunakan perpustakaan android-support-v7: 21.
Cuplikan kode:
MainActivity.java
public class MainActivity extends ActionBarActivity {
Toolbar mActionBarToolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
mActionBarToolbar.setTitle("My title");
setSupportActionBar(mActionBarToolbar);
}
activity_main.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_actionbar"
android:background="@null"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:fitsSystemWindows="true" />
</LinearLayout>
Tetapi alih-alih "Judul saya" di Toolbar% nama aplikasi% ditampilkan.
Sepertinya setTitle
metode tidak berpengaruh.
Saya ingin menunjukkan "Judul saya".
UPD:
Sebelumnya, styles.xml
adalah:
<style name="AppTheme" parent="Theme.AppCompat">
<item name="windowActionBar">false</item>
</style>
Jadi, saya pikir actionbar tidak digunakan. Saya menambahkan NoActionBar
ke style induk:
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<item name="windowActionBar">false</item>
</style>
Tapi masalahnya belum terselesaikan.
android
toolbar
android-support-library
krossovochkin
sumber
sumber
Jawaban:
Menemukan solusinya:
Dari pada:
Saya menggunakan:
Dan itu berhasil.
sumber
getSupportActionBar().setTitle("My title");
dapat menghasilkan 'java.lang.NullPointerException'setSupportActionBar(mToolbar)
tentu saja Anda akan mendapatkan pengecualian nol, tetapi jika Anda memanggilnya maka abaikan saja pesan ini. Baca saja - developer.android.com/training/appbar/setting-up.htmlBagi siapa saja yang perlu mengatur judul melalui Toolbar beberapa saat setelah menetapkan SupportActionBar, baca ini.
Implementasi internal perpustakaan dukungan hanya memeriksa apakah Toolbar memiliki judul (bukan nol) pada saat SupportActionBar diatur. Jika ada, maka judul ini akan digunakan sebagai pengganti judul jendela. Anda kemudian dapat menetapkan judul dummy saat Anda memuat judul asli.
kemudian...
sumber
this.setTitle("Title")
, di manathis
- adalah referensi ke suatu aktivitas.Jawaban di atas sepenuhnya benar tetapi tidak berhasil untuk saya.
Saya memecahkan masalah saya dengan hal-hal berikut.
Sebenarnya XML saya seperti itu:
Saya telah mencoba semua opsi dan setelah semua saya baru saja dihapus
CollapsingToolbarLayout
karena saya tidak perlu menggunakan yang khususXML
Jadi XML Final saya seperti:Sekarang Anda harus menggunakan
setTitle()
jawaban seperti di atas:Sekarang Jika Anda ingin menggunakan
CollapsingToolbarLayout
danToolbar
sama, maka Anda harus menggunakansetTitle()
dariCollapsingToolbarLayout
Semoga ini akan membantu Anda. Terima kasih.
sumber
CollapsingToolbarLayout
diselesaikanCollapsingToolbarLayout
?Cukup Anda dapat mengubah nama aktivitas dengan menggunakan
sumber
title = "Title"
di Kotlin atau mungkinthis.setTitle("Title")
di Jawa.Coba ini, Anda dapat menentukan judul secara langsung dalam XML:
sumber
Untuk mengatur judul untuk setiap judul fragmen Navbar
sumber
Coba ini .. metode ini bekerja untuk saya .. !! semoga bisa membantu seseorang .. !!
Untuk menampilkan logo di bilah alat, coba cuplikan di bawah ini. // Atur drawable
Biarkan saya tahu hasilnya.
sumber
sumber
Silakan lihat https://code.google.com/p/android/issues/detail?id=77763 . Rupanya itu seharusnya bekerja seperti itu. Setelah Anda memanggil
setSupportActionBar()
metode panggilan, itu adalah tanggung jawab delegasi ActionBar untuk merutekan panggilan ke tampilan yang benar.sumber
Saya mencoba mengubah nama bilah alat dari fragmen
Itu membantu saya, saya berharap dapat membantu orang lain
Tangkapan layar:
sumber
Bukan hanya tentang
.setTitle
lebih banyak metode Bilah Alat Dukungan (Appcompat v7)
onCreate
hanya berfungsi dengangetSupportActionBar().method()
dan tidak bekerja dengannya
mToolbar.method()
contoh:
meskipun metode selanjutnya berfungsi dengan baik tanpa
getSupportActionBar()
dionCreate
Masalah hanya dengan
onCreate
acara, Anda masih dapat menggunakanmToolbar.setTitle()
nanti daripada mengganggugetSupportActionBar().setTitle()
, misalnya jika Anda menambahkan ini dionCreate
dalamnya akan berfungsi (karena akan dieksekusi nanti, setelahonCreate
)Saya lebih suka menggunakan solusi ini https://stackoverflow.com/a/35430590/4548520 daripada https://stackoverflow.com/a/26506858/4548520 karena jika Anda mengubah judul berkali-kali (dalam fungsi yang berbeda) lebih nyaman digunakan
mToolbar.setTitle()
lebih darigetSupportActionBar().setTitle()
satu dan Anda tidak melihat pemberitahuan yang mengganggu tentang pengecualian nol seperti dengangetSupportActionBar().setTitle()
sumber
Bagi siapa saja yang perlu mengatur judul melalui Toolbar beberapa saat setelah mengatur SupportActionBar (@sorianiv) DAN Anda
Toolbar
ada di dalamCollapsingToolbarLayout
, baca ini:Lalu nanti,
sumber
Judul aplikasi tidak akan ditampilkan sebagai judul default pada setiap aktivitas, Anda dapat menyisipkan judul yang berbeda pada setiap aktivitas. Pada file aktivitas Anda di bawah onCreate cukup tempelkan satu baris untuk menetapkan judul,
Cukup ubah teks "Judul Anda Di Sini" menjadi teks Anda.
sumber
Cukup gunakan ini di adaptor Anda, Di mana MainActivity adalah AppCompactActivity Anda. Sebut saja dari mana saja.
sumber
Saya membuatnya bekerja dengan menggunakan -
sumber
post
jika Anda mengubah judul di utas UI, yang menurut saya adalah 90% kasus.Jika Anda menggunakan
CollapsibleToolbarLayout
bersama denganToolbar
maka Anda harus menetapkan judul di kedua tata letakatur Toolbar Anda sebagai bar tindakan dalam
onCreate
metodeKemudian cukup perbarui judul toolbar menggunakan
setTitle
metodesumber
Coba ini:
Kode Xml
Kode Java
sumber
Jika tujuan Anda adalah menetapkan string statis di bilah alat, cara termudah untuk melakukannya adalah cukup dengan mengatur label aktivitas di AndroidManifest.xml:
Bilah alat akan mendapatkan string ini tanpa kode apa pun. (berfungsi untuk saya dengan perpustakaan v27.)
sumber
Saya memiliki perilaku aneh yang mungkin dapat membantu Anda.
Ini berfungsi tetapi tidak berpengaruh hanya pada onCreate:
Coba gunakan ini di onCreate:
sumber
Untuk mengubah judul untuk setiap aktivitas yang berbeda
sumber
sumber
Meskipun tidak segera relevan dengan pengaturan khusus ini, saya menemukan bahwa menghapus "CollapsingToolbarLayout" dari XML saya yang membungkus bilah alat saya di dalam AppBarLayout membuat semuanya berfungsi.
Jadi ini:
Alih-alih ini:
Lalu, saya mengatur judul di aktivitas onCreate, sebelum setSupportActionBar () dipanggil.
sumber
Ini dapat dilakukan dengan mengatur
android:label
atribut aktivitas Anda diAndroidManifest.xml
file:Dan kemudian tambahkan baris ini ke onCreate ():
sumber
Pastikan Anda menambahkan opsi ini:
sumber
Jawabannya ada dalam dokumentasi (yang dapat Anda temukan di sini ):
Itulah solusi yang Anda temukan. Bayangkan saja memberikan referensi ke dokumentasi resmi (yang tampaknya sedikit cenderung membaca).
sumber
Di Kotlin Anda dapat melakukan ini:
sumber
Ini terjadi karena Anda menggunakan Toolbar dan ActionBar keduanya. Sekarang karena Anda ingin menggunakan Bilah Alat sebagai bilah tindakan, hal pertama yang perlu Anda lakukan adalah menonaktifkan bilah tindakan yang disediakan dekorasi.
Cara termudah adalah memperluas tema Anda
Theme.AppCompat.NoActionBar
.sumber