在appcompat-v7的工具栏中删除标题


170

文件Toolbar

如果应用使用徽标图像,则应强烈考虑省略标题和副标题。

删除标题的正确方法是什么?


如果将其设置为空字符串,问题出在哪里?我认为您不必使用仅使用图标的自定义布局。猜猜那是杀手over?
瓦格纳·迈克尔

3
@maffelbaffel设置空字符串没什么问题,但是感觉不合适。但是,是的,使用自定义布局会过大。
timemanx 2014年

1
我必须做:toolbar.setTitle("");
Ferran Maylinch,2015年

1
@FerranMaylinch是的,这也对我有用!我用 toolbar.setTitle(null); 结果是“应用程序名称”作为默认标题。所以我设置了toolbar.setTitle(“”); 哪个工作正常。
ULHAS PATIL 2015年

Answers:


554
getSupportActionBar().setDisplayShowTitleEnabled(false);

4
这个答案和David_E的答案如果是在打电话之后立即打电话给我的话setSupportActionBar()。选择此答案是因为根据官方参考,这似乎是这样做的官方方法:Set whether an activity title/subtitle should be displayed.
C0D3LIC1OU5 2015年

我只适用于工具栏(如actionbar),而不适用于干净的toobar!
iscariot

2
如何使用style.xml删除它?请帮助我
Anand Savjani 2015年

为我工作。您必须使用“ appcompat_v7:v21”才能正常工作。
V_J 2015年

您必须通过执行以下操作来检查上述内容是否不会产生NullPonterException:if(getSupportActionBar()!= null)getSupportActionBar()。setDisplayShowTitleEnabled(false);
iOSAndroidWindowsWindowsMo​​bileAppsDev

68

隐藏/更改工具栏标题的正确方法是:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle(null);

这是因为,当您调用时setSupportActionBar(toolbar);getSupportActionBar()将会负责处理操作栏(而不是工具栏对象)中的所有内容。

这里


9
setTitle(null)导致应用名称成为标题。setTitle(“”)为我工作。
user1354603 2015年

1
在xml中,我添加了<Toolbar app:title =“” // title是一个空格。工作
Dan Alboteanu

21

试试这个...

 @Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_landing_page); 

    .....

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

    .....

 }

19

我之所以回答的原因是因为最受支持的答案本身无法解决我的问题。我已经通过这样做解决了这个问题。

<activity android:name="NAME OF YOUR ACTIVITY"
    android:label="" />

希望这也会对其他人有所帮助。


2
这不是一个好主意。如果您<intent-filter>在该活动上具有一个允许用户通过单击URL(例如)来打开您的应用的功能,那么“消歧”对话框将没有任何标题!
艾伯特·维拉·卡尔沃

10

从您的标题中删除标题的另一种方法Toolbarnull像这样:

Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
toolbar.setTitle(null);

4

这个

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);
    //toolbar.setNavigationIcon(R.drawable.ic_toolbar);
    toolbar.setTitle("");
    toolbar.setSubtitle("");
    //toolbar.setLogo(R.drawable.ic_toolbar);


2

您可以使用以下波纹管中的任何一种,因为两者的工作方式相同: getSupportActionBar().setDisplayShowTitleEnabled(false); getSupportActionBar().setTitle(null);

使用地点:

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

要么 :

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setTitle(null);

2
 Toolbar actionBar = (Toolbar)findViewById(R.id.toolbar);
    actionBar.addView(view);
    setSupportActionBar(actionBar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);

注意这一行 getSupportActionBar().setDisplayShowTitleEnabled(false);


actionBar.addView(view); 是我要添加到工具栏的自定义视图
suulisin 17-4-26


1

隐藏以下代码的工具栏标题/标签的正确方法:

  Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setTitle(null);

1

我不知道这是否是正确的方法,但是我改变了我的风格。

<style name="NoActionBarStyle" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
</style>


1

这很明显,但是App Theme设计上的选择只是为了在版式设计中显示草图,与手机中的实际应用无关。就我而言,设计中没有标题栏,但标题栏始终位于手机中。

我从Android编程开始,努力寻找合适的解决方案。

仅更改清单文件(AndroidManifest.xml)是不够的,因为需要预先定义样式styles.xml。也是无用的更改布局文件。

在所有提出的方案JavaKotlin已失败对我来说。其中一些使应用程序崩溃。如果从未(像我一样)打算在应用程序中使用标题栏,则静态解决方案会更干净。

对我而言,唯一适用于2019(Android Studio 3.4.1)的解决方案是:

styles.xml(在app / res / values下)添加以下行:

   <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

之后AndroidManifest.xml(在应用程序/清单下)

更换

android:theme="@style/AppTheme">

通过

android:theme="@style/AppTheme.NoActionBar">

0

没有人提到:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
    }

回答之前请仔细阅读问题,OP已要求从工具栏中删除标题
Bhavik梅塔


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.