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?

Jawaban:


215

Mencoba:

 getActionBar().setDisplayShowTitleEnabled(false);

Untuk v.7:

 getSupportActionBar().setDisplayShowTitleEnabled(false);

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>

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.


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.


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="">

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


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();

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


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


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 .


3

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

<activity 
    android:name=".ActivityHere"
    android:label=""
>

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


2

Gunakan yang berikut ini:

requestWindowFeature(Window.FEATURE_NO_TITLE);

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);

1

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

this.setTitle("");

dalam Aktivitas Anda


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.


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(" ");

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>

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 ....


-3
ActionBar actionBar = getActionBar();
actionBar.setTitle("");

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.