Başlık metnini Android ActionBar'dan nasıl kaldırırsınız?


105

Holo.LightTemayı inceliyorum ve uygulamam ilk başladığında kısa bir süre için görünen başlık metninden kurtulmak için geçersiz kılınacak sihirli stili bulamıyorum.

Bunu nasıl yapabilirim?

Yanıtlar:


216

Deneyin:

 getActionBar().setDisplayShowTitleEnabled(false);

V.7 için:

 getSupportActionBar().setDisplayShowTitleEnabled(false);

22
İşlem çubuğu yüklenirken, istediğiniz gibi olmayan başlığı yine de göreceksiniz. doğru çözüm, m3n0R'nin önerdiği şeydir.
numan salati

12
getSupportActionBar () olmalıdır. setDisplayShowTitleEnabled (false); v7.0 için diğer yandan boş işaretçi çalıştırması üretecek
Amir

5
@numansalati m3n0R kimdir? Sayfayı aradım ve hiçbir şey bulamadım
ka3ak

Yöntemleri ne zaman hesaplamalıyım? Yani hangi yöntemden (aktivite, parça) çağrılmalıdır?
ka3ak

94

Bunun doğru cevap olduğunu düşünüyorum:

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

Peki ya Android 4? ActionBarSherlock kullanmıyorum, bu yüzden adlandırılmış kaynak yok Widget.Sherlock.Light.ActionBar.Solid.Inverse. Hangi ebeveyni kullanmalıyım?
Alex Semeniuk

Holo Teması. Varsayılan olarak, genişletebileceğiniz 3 sanal tema vardır.
cesards

Bu, ilk açılışta başlığı gizlemek için çalışır. Başka bir aktivitede setTitle çağrısı çalışmaz. Çalışma zamanında işlem çubuğu stillerini değiştirmenin bir yolu var mı?
speedynomads

çalışma zamanında varsayılan temayı ayarlama :)
cesards

@ domji84, manifest dosyasındaki her bir etkinliğin temasını belirtebilirsiniz.
ashishduh

63

Android'de çok yeniyim, bu yüzden yanılıyorsam beni düzeltin, ancak sanırım Eylem Çubuğu'ndaki gezinme sekmelerini kullanmaya karar verirseniz, bunlar tamamen sola hizalı görünmüyor çünkü başlık metni rengi yalnızca şeffaf ve hasn ' t gitmiş.

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

benim için çalıştı.


evet, yanılıyorsunuz, söz konusu sekme yok ve cevabınızda sanal ışık yok
miky

Bunu denerken, bu hatayı alıyorum, @android: style / Widget.Holo.ActionBar API seviyesi 11'i gerektiriyor (mevcut dakika 10'dur).
jrhamza

Bu stili uygulamamın tüm etkinliklerine değil, belirli bir etkinliğin işlem çubuğuna atamak istiyorsam. Nasıl yapabilirim? 'android: displayOptions' satırını nereye koyarım? Menu.xml'de? AndroidMenifest.xml'de mi?
GyRo

43

Anladım. Geçersiz kılmalısın

android:actionBarStyle

ve sonra özel stilinizde geçersiz kılmanız gerekir

android:titleTextStyle

İşte bir örnek.

Theme.xml dosyamda:

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

Ve styles.xml dosyamda:

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

TextSize'ı sıfıra ayarlamanın neden işe yaramadığından (metni küçülttü, ancak ortadan kaldırmadı), ancak textColor'u şeffaf olarak ayarlamanın neden işe yaradığından emin değilim.


3
Evet bu yardımcı oldu. Neden android:visibility=goneetkisi olmadığı hakkında bir fikriniz var mı? Ya da daha iyisi, setDisplayShowTitleEnabledçubuk yüklenirken neden hala başlık metnini gösteriyor?
Matthias

7
Boyutu 0 olarak ayarlamak yerine <item name = "android: displayOptions"> useLogo | showHome </item> kullanın
Jerome VDL

23

Manifestonuzda

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

33
Bu işe yarıyor, ancak uygulamanızın 'Son kullanılan uygulamalar' seçicisinde görünmesini durduracak
Rupert Bates

1
bu, uygulamanın telefon uygulamalarında / ana ekranda ismine sahip olmamasını sağlar
Nimitack

13

Bu ifadeyi altına yazın

setContentView(R.layout.activity_main);

getSupportActionBar().setDisplayShowTitleEnabled(false);

AppCompactActivity kullanımını getSupportActionbar()genişletirse, Activity kullanımını genişletirse getActionBar(),

null pointer exception

kullanarak android:label=""içinde AndroidManifest.xml faaliyet da çalışır için ancak uygulama görünmezRecently used apps


9

iki seçeneğiniz var:

birincisi:

getActionBar().setDisplayShowTitleEnabled(false);

Usign getActionBar()boş işaretçi istisnası oluşturduysa, İkinci kullanmalısınızgetSupportActionBar()

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

veya

getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().hide();

6

bu kodu Uygulama manifestinde kullanıyorum

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

logo dosyam 200 * 800 piksel ve bu kodu main activity.java'da kullan

getActionBar().setDisplayShowTitleEnabled(false);

Corectly çalışacak


6

Bunu denedim. Bu yardımcı olacak -

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

getSupportActionBar, setSupportActionBar'dan sonra çağrılmalıdır, bu nedenle araç çubuğu ayarlanmalıdır, aksi takdirde, NullpointerException ayarlı araç çubuğu olmadığından. Bu yardımcı olur umarım


5

Her aktiviteye uygulanan stili değiştirebilir veya yalnızca belirli bir aktivite için davranışı değiştirmek istiyorsanız, şunu deneyebilirsiniz:

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

Başlığı işlem çubuğunda görüntülemek için onCreate () 'de görüntüleme seçeneklerini ayarlayın.

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

Eylem çubuğundaki başlığı gizlemek için.

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

Detaylar burada .



3
getSupportActionBar().setDisplayShowTitleEnabled(false);
    getSupportActionBar().hide();

umarım bu yardımcı olur


2

Aşağıdakileri kullanın:

requestWindowFeature(Window.FEATURE_NO_TITLE);

ActionBar'ı kullanıyorsanız bunu yapamazsınız. Bunu yapmaya çalışırsanız, uygulama açıldığında hemen kilitlenir.
Christopher Perry

@ChristopherPerry doğru değil. setContentView'ü çağırmadan önce yapmanız koşuluyla, koddaki eylem barını kaldırmak için bunu kullanabilirsiniz.
numan salati

yine de, bu sadece başlığı yerine tüm eylem çubuğunu kaldırıyor!
bofredo

2

Bunu yalnızca bir etkinlik için ve hatta belki dinamik olarak yapmak istiyorsanız, şunu da kullanabilirsiniz:

ActionBar actionBar = getActionBar();
actionBar.setDisplayOptions(actionBar.getDisplayOptions() ^ ActionBar.DISPLAY_SHOW_TITLE);

1

geçici bir çözüm olarak, özel eylem / araç çubuklarınız varsa bu satırı ekleyin

this.setTitle("");

Aktivitenizde


1

Bunların hepsi kabul edilebilir olsa da, etkinliğiniz yalnızca bir ana etkinlik içeriyorsa, şu şekilde düzenleyebilirsiniz res\values\styles.xml:

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

parentAndroid Studios Create Blank ApplicationSihirbazı'ndan .NoActionBar özelliğini güncelledim ve Light temasına ekledim .


Bu, yalnızca başlığı değil tüm eylem çubuğunu devre dışı bırakacaktır. Ve boş eylem çubuğu oluşturmak istiyorsanız, bunu her görünüm için yapmanız gerekecektir.
AlwaysConfused

1

Basitçe java dosyanızı genişletir AppCompatActivityve bunu yapın:

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

0

Manifest.xml sayfanızda etkinlik etiketinize adres verebilirsiniz. adres, değerler / strings.xml içinde bir yerdedir. sonra xml dosyasındaki etiketin değerini null olarak değiştirebilirsiniz.

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

0

Android'de yeniyim, bu yüzden belki yanılıyorum ... ama bu sorunu çözmek için manifestoya gidip etkinlik etiketini kaldıramayız

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

        **android:label="" >**

Benim için çalıştı ...


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

3
@Matteo Çalışabilse de, kesinlikle kabataslak ve bunu yapmanın doğru yolu değil. Aslında, aslında başlık metnini kaldırmaz, sadece "" olarak ayarlar, böylece onu göremezsiniz.
user1234
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.