Android custom TitleBar - hide text

2019-07-28 19:30发布

I am using a titlebar with a background image in my android app.

values/custom_styles.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="TitlebarBackgroundStyle">
        <item name="android:background">@drawable/titlebar</item>
    </style>
    <style name="Theme.MyCustomTheme" parent="android:Theme"> 
        <item name="android:windowTitleBackgroundStyle">@style/TitlebarBackgroundStyle</item>
        <item name="android:windowTitleSize">45dp</item>
    </style>
</resources>

layout/titlebar.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="horizontal"
 android:layout_width="fill_parent"
 android:layout_height="45dip"
 android:gravity="center_vertical">
 <ImageView
  android:id="@+id/header"
  android:src="@drawable/titlebar"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"/>
</LinearLayout>

Manifest:

<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@style/Theme.MyCustomTheme">

This works pretty well so far.

The only thing I'd like to do now is to hide the text on the titlebar ...

I tried:

<item name="android:textSize">0dp</item>

but with no luck. Is there any way to set the transparency or some other property that would allow me to see the background image but not the text?

thanks for your thoughts Ron

9条回答
手持菜刀,她持情操
2楼-- · 2019-07-28 19:42

Fortunately the way is too simple (I guess you do have a custom layout for your title)

If you don't know to do how please take a look: How to Create Custom Window Title in Android

Hiding the default title text is one line of code. Just write setTitle(""); inside onCreate().

That's it! Hope this helps!

查看更多
爱情/是我丢掉的垃圾
3楼-- · 2019-07-28 19:50

If you are working on API level 11 or above than do this in your activity

final ActionBar actionBar = getActionBar();
actionBar.setDisplayShowTitleEnabled(false);

Or you can do this by applying custom style to your activity like

  <style name="CustomWindowTitle" parent="android:TextAppearance.WindowTitle">
           <item name="android:visibility">gone</item>     
  </style>    

  <style name="MainTheme" parent="@android:Theme">    
     <item name="android:windowTitleStyle">
       @style/CustomWindowTitleText</item>   
 </style>

And then add it to your activity like

 <activity
            ......
 android:theme="@style/MainTheme"/>
查看更多
小情绪 Triste *
4楼-- · 2019-07-28 19:50
android:label=""

add this to manifest

查看更多
不美不萌又怎样
5楼-- · 2019-07-28 19:55

Set your theme to a custom theme for the activity. The theme would look like this:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="Theme.Black.OptionalActionBar" parent="@android:style/Theme.Black.NoTitleBar">
        <item name="android:windowNoTitle">false</item>
        <item name="android:windowActionBar">true</item>
        <item name="android:actionBarStyle">@style/MyActionBarStyle</item>
    </style>

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

    <style name="OptionalVisibility">
        <item name="android:visibility">invisible</item>
        <item name="android:height">1dp</item>
    </style>

</resources>

The ActionBarStyle overrides the behavior of the action bar. Notice I set the style to the holo actionbar and then change the displayOptions to showHome. This will only show the home icon. You can also set it to showTitle which will only show the text. Or both showHome|showTitle. If you leave it blank, <item name="android:displayOptions"></item> then the text and icon will go away all together.

NOTE: I know this will work for 3.0 (api 11) and above...I am not certain if it will work for lower API levels.

I know this is years old...but posting for others who encounter this problem.

查看更多
Anthone
6楼-- · 2019-07-28 19:56

I'm not sure, but you can also try to declare your activities without label in manifest.

<activity android:name="...">
查看更多
Emotional °昔
7楼-- · 2019-07-28 20:01

Try to set an empty custom titlebar with an empty layout.

Boolean customTitle = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);    
    setContentView(R.layout.listviewoffers);
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebarlayout);
查看更多
登录 后发表回答