Bagaimana Anda menghapus teks judul dari Android ActionBar?

105

Saya melihat-lihat Holo.Lighttema, dan sepertinya saya tidak dapat menemukan gaya ajaib untuk ditimpa untuk menghilangkan teks judul yang muncul sebentar saat aplikasi saya pertama kali diluncurkan.

Bagaimana saya bisa melakukan itu?

Christopher Perry
sumber

Jawaban:

215

Mencoba:

 getActionBar().setDisplayShowTitleEnabled(false);

Untuk v.7:

 getSupportActionBar().setDisplayShowTitleEnabled(false);
Filippo Mazza
sumber
22
Anda masih akan melihat judul saat bilah tindakan sedang memuat yang bukan yang Anda inginkan. solusi yang tepat adalah apa yang disarankan m3n0R.
numan salati
12
itu harus getSupportActionBar (). setDisplayShowTitleEnabled (false); untuk v7. selain itu akan menghasilkan eksekusi pointer nol
Amir
5
@numansalati Siapa m3n0R? Saya telah mencari halaman dan tidak menemukan apa pun
ka3ak
Kapan saya harus menentukan metode? Maksud saya dari metode mana (aktivitas, fragmen) harus dipanggil?
ka3ak
94

Saya rasa ini adalah jawaban yang benar:

<style name="AppTheme" parent="Theme.Sherlock.Light.DarkActionBar">
    <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
    <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
</style>

<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
    <item name="android:displayOptions">showHome|useLogo</item>
    <item name="displayOptions">showHome|useLogo</item>
</style>
cesards
sumber
Bagaimana dengan Android 4? Saya tidak menggunakan ActionBarSherlock jadi tidak ada sumber daya bernama Widget.Sherlock.Light.ActionBar.Solid.Inverse. Orang tua mana yang harus saya gunakan?
Alex Semeniuk
Tema Holo. Secara default, ada 3 tema holo yang dapat Anda kembangkan.
cesards
Ini berfungsi untuk menyembunyikan judul pada peluncuran pertama. Di aktivitas lain, memanggil setTitle tidak berfungsi. Apakah ada cara untuk menukar gaya bilah tindakan saat runtime?
speedynomads
mengatur tema default pada runtime :)
cesards
@ domji84, Anda dapat menentukan tema setiap aktivitas dalam file manifes.
ashishduh
63

Saya sangat baru mengenal Android jadi perbaiki saya jika saya salah, tetapi saya pikir jika Anda memutuskan untuk menggunakan tab navigasi di Bilah Tindakan, tab itu sepertinya tidak sepenuhnya rata kiri karena warna teks judul hanya transparan dan tidak t pergi.

<style name="CustomActionBarStyle" parent="@android:style/Widget.Holo.ActionBar">
     <item name="android:displayOptions">useLogo|showHome</item>
</style>

bekerja untuk saya.

sparknoob
sumber
ya, Anda salah, tidak ada tab yang dipertanyakan dan tidak ada cahaya holo dalam jawaban Anda
miky
Sementara saya mencoba ini, saya mendapatkan kesalahan ini, @android: style / Widget.Holo.ActionBar membutuhkan API level 11 (min saat ini adalah 10).
jrhamza
Jika saya ingin menetapkan gaya ini ke bilah tindakan dari aktivitas tertentu dan bukan untuk semua aktivitas aplikasi saya. Bagaimana saya bisa melakukannya? di mana saya meletakkan baris 'android: displayOptions'? di Menu.xml? Di AndroidMenifest.xml?
GyRo
43

Mengerti. Anda harus menimpa

android:actionBarStyle

dan kemudian dalam gaya kustom Anda, Anda harus menggantinya

android:titleTextStyle

Berikut contohnya.

Di tema saya.xml:

<style name="CustomActionBar" parent="android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/CustomActionBarStyle</item>
</style>

Dan di styles.xml saya:

<style name="CustomActionBarStyle" parent="android:style/Widget.Holo.ActionBar">
        <item name="android:titleTextStyle">@style/NoTitleText</item>
        <item name="android:subtitleTextStyle">@style/NoTitleText</item>
</style>

<style name="NoTitleText">
        <item name="android:textSize">0sp</item>
        <item name="android:textColor">#00000000</item>
</style>

Saya tidak yakin mengapa pengaturan textSize ke nol tidak berhasil (itu menyusutkan teks, tetapi tidak membuatnya hilang), tetapi pengaturan textColor menjadi transparan berfungsi.

Christopher Perry
sumber
3
Ya itu membantu. Tahu mengapa android:visibility=gonetidak berpengaruh? Atau lebih baik lagi, mengapa setDisplayShowTitleEnabledmasih menampilkan teks judul saat bilah sedang dimuat?
Matthias
7
Gunakan <item name = "android: displayOptions"> useLogo | showHome </item> alih-alih menyetel ukuran ke 0
Jerome VDL
23

Dalam Manifest Anda

<activity android:name=".ActivityHere"
     android:label="">
easycheese
sumber
33
Ini berfungsi, tetapi akan menghentikan aplikasi Anda muncul di pemilih 'Aplikasi yang baru-baru ini digunakan'
Rupert Bates
1
ini membuat aplikasi tidak memiliki nama pada aplikasi ponsel / layar utama
Nimitack
13

Tulis pernyataan ini di bawah

setContentView(R.layout.activity_main);

getSupportActionBar().setDisplayShowTitleEnabled(false);

jika memperluas penggunaan AppCompactActivity getSupportActionbar()jika memperluas penggunaan Aktivitas getActionBar()lain yang mungkin diberikannya

null pointer exception

menggunakan android:label=""di AndroidManifest.xml untuk aktivitas juga berfungsi, tetapi aplikasi Anda tidak akan muncul diRecently used apps

Manohar Reddy
sumber
9

Anda memiliki dua pilihan:

pertama:

getActionBar().setDisplayShowTitleEnabled(false);

Jika usign getActionBar()menghasilkan pengecualian pointer nol, Anda harus menggunakan getSupportActionBar()

Second

getSupportActionBar().setTitle("your title");

atau

getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().hide();
Hamid
sumber
6

saya menggunakan kode ini dalam manifes Aplikasi

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:logo="@drawable/logo2"
        android:label="@string/title_text"
        android:theme="@style/Theme.Zinoostyle" >

file logo saya berukuran 200 * 800 piksel dan menggunakan kode ini di main activity.java

getActionBar().setDisplayShowTitleEnabled(false);

itu akan bekerja dengan benar

Milaaaad
sumber
6

Saya mencoba ini. Ini akan membantu -

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);

getSupportActionBar harus dipanggil setelah setSupportActionBar, sehingga menyetel bilah alat, jika tidak, NullpointerException karena tidak ada kumpulan bilah alat. Semoga ini membantu

kenobiwan
sumber
5

Anda bisa mengubah gaya yang diterapkan ke setiap aktivitas, atau jika Anda hanya ingin mengubah perilaku untuk aktivitas tertentu, Anda bisa mencobanya:

setDisplayOptions(int options, int mask) --- Set selected display 
  or
setDisplayOptions(int options) --- Set display options.

Untuk menampilkan judul di bilah tindakan, setel opsi tampilan di onCreate ()

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE, ActionBar.DISPLAY_SHOW_TITLE);

Untuk menyembunyikan judul di bilah tindakan.

getSupportActionBar().setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);

Detailnya di sini .

Siqi Liu
sumber
3

Satu-satunya hal yang benar-benar berhasil bagi saya adalah menambahkan:

<activity 
    android:name=".ActivityHere"
    android:label=""
>
ShiftlessAndreas
sumber
Yah adalah jawaban yang "salah", namun itu membantu saya dengan kasus serupa :)
Javier
1
Jangan lakukan ini karena akan merusak aplikasi Anda ketika diminimalkan
jfcartier
3
getSupportActionBar().setDisplayShowTitleEnabled(false);
    getSupportActionBar().hide();

semoga ini bisa membantu

MeshPadukka
sumber
2

Gunakan yang berikut ini:

requestWindowFeature(Window.FEATURE_NO_TITLE);
Vivek
sumber
Anda tidak dapat melakukannya jika Anda menggunakan ActionBar. Jika Anda mencoba melakukan ini, aplikasi akan langsung macet saat dibuka.
Christopher Perry
@Perry tidak benar. Anda bisa menggunakan ini untuk menghapus panel tindakan dalam kode, asalkan Anda melakukannya sebelum memanggil setContentView.
numan salati
meskipun, ini menghapus seluruh bilah tindakan, bukan hanya judulnya!
bofredo
2

Jika Anda hanya ingin melakukannya untuk satu aktivitas dan bahkan mungkin secara dinamis, Anda juga dapat menggunakan

ActionBar actionBar = getActionBar();
actionBar.setDisplayOptions(actionBar.getDisplayOptions() ^ ActionBar.DISPLAY_SHOW_TITLE);
Heiko Rupp
sumber
1

sebagai solusinya cukup tambahkan baris ini jika Anda memiliki tindakan / toolbar kustom

this.setTitle("");

dalam Aktivitas Anda

Mihsen
sumber
1

Meskipun semua ini dapat diterima, jika aktivitas Anda hanya berisi aktivitas utama, Anda dapat mengedit res\values\styles.xmlseperti ini:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

</resources>

Saya telah memperbarui parentdan menambahkan properti .NoActionBar ke tema Cahaya dari Android Studios Create Blank ApplicationWizard.

eyoung100
sumber
Itu akan menonaktifkan seluruh bilah tindakan, tidak hanya judul. Dan jika Anda ingin membuat bilah tindakan kosong, Anda harus melakukannya untuk setiap tampilan.
AlwaysConfused
1

Cukup kembangkan file java Anda dari AppCompatActivitydan lakukan ini:

ActionBar actionBar = getSupportActionBar(); // support.v7
actionBar.setTitle(" ");
Keras
sumber
0

Di halaman manifest.xml Anda, Anda dapat memberikan alamat ke label aktivitas Anda. alamatnya ada di suatu tempat di values ​​/ strings.xml Anda. maka Anda dapat mengubah nilai tag dalam file xml menjadi null.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title_main_activity"></string>
</resources>
Damoon
sumber
0

Saya baru mengenal Android jadi mungkin saya salah ... tetapi untuk mengatasi masalah ini tidak bisakah kita hanya pergi ke manifes dan menghapus label aktivitas

<activity
        android:name=".Bcft"
        android:screenOrientation="portrait"

        **android:label="" >**

Bekerja untuk saya ....

Ebin Xavier Jose
sumber
-3
ActionBar actionBar = getActionBar();
actionBar.setTitle("");
Joe Lewis
sumber
3
@Matteo Meskipun mungkin berhasil, itu pasti samar dan bukan cara yang tepat untuk melakukannya. Nyatanya, ini tidak benar-benar menghapus teks judul, itu hanya mengaturnya ke "", sehingga Anda tidak dapat melihatnya.
pengguna1234