【问题标题】:Remove title in Toolbar in appcompat-v7在 appcompat-v7 的工具栏中删除标题
【发布时间】:2014-12-26 05:06:06
【问题描述】:

Toolbardocumentation

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

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

【问题讨论】:

  • 如果只是将其设置为空字符串,问题在哪里?我认为您不必使用仅使用图标的自定义布局。你猜这有点矫枉过正?
  • @maffelbaffel 设置空字符串没有错,但感觉不合适。但是,是的,使用自定义布局将是矫枉过正。
  • 我必须这样做:toolbar.setTitle("");
  • @FerranMaylinch 是的,这也适合我!我使用 toolbar.setTitle(null); 将应用程序名称作为默认标题。所以我设置 toolbar.setTitle(""); 工作正常。

标签: android android-actionbar android-appcompat android-toolbar


【解决方案1】:
getSupportActionBar().setDisplayShowTitleEnabled(false);

【讨论】:

  • 如果在致电setSupportActionBar() 后立即致电,则此答案和 David_E 的答案对我有效。选择这个答案是因为这似乎是官方参考的官方方式:Set whether an activity title/subtitle should be displayed.
  • 它只适用于像操作栏这样的工具栏,而不适用于干净的工具栏!
  • 如何使用 style.xml 删除它?请帮帮我
  • 为我工作。您必须使用“appcompat_v7:v21”才能使其正常工作。
  • 您必须通过以下方式检查上述是否不会产生 NullPonterException: if(getSupportActionBar() !=null) getSupportActionBar().setDisplayShowTitleEnabled(false);
【解决方案2】:

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

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

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

here

【讨论】:

  • setTitle(null) 导致应用名称成为标题.. setTitle("") 为我工作。
  • 在 xml 中我添加了
【解决方案3】:

试试这个...

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

    .....

 }

【讨论】:

    【解决方案4】:

    我对此做出回答的原因是因为最受好评的答案本身未能解决我的问题。通过这样做,我已经解决了这个问题。

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

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

    【讨论】:

    • 这不是一个好主意。如果您在该 Activity 上有一个 &lt;intent-filter&gt; 以允许用户通过单击 URL(例如)打开您的应用,则消歧对话框将没有任何标题!
    【解决方案5】:

    Toolbar 中删除标题的另一种方法是null,如下所示:

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

    【讨论】:

      【解决方案6】:

      这个

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

      【讨论】:

        【解决方案7】:

        如果您使用的是工具栏,请尝试以下代码:

        toolbar.setTitle("");
        

        【讨论】:

          【解决方案8】:
           Toolbar actionBar = (Toolbar)findViewById(R.id.toolbar);
              actionBar.addView(view);
              setSupportActionBar(actionBar);
              getSupportActionBar().setDisplayShowTitleEnabled(false);
          

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

          【讨论】:

          • actionBar.addView(view);是我添加到工具栏的自定义视图
          【解决方案9】:

          您可以使用以下任何一种,因为两者的工作方式相同: 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);
          

          【讨论】:

            【解决方案10】:

            只需将此属性添加到您的工具栏

            app:title=" "
            

            【讨论】:

              【解决方案11】:

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

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

              【讨论】:

                【解决方案12】:

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

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

                【讨论】:

                  【解决方案13】:
                  Toolbar toolbar = findViewById(R.id.myToolbar);
                      toolbar.setTitle("");
                  

                  【讨论】:

                    【解决方案14】:

                    如果您使用默认工具栏,那么您可以添加这行代码

                    Objects.requireNonNull(getSupportActionBar()).setDisplayShowTitleEnabled(false);
                    

                    【讨论】:

                      【解决方案15】:

                      没有人提到:

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

                      【讨论】:

                      • 在回答之前仔细阅读问题,OP已要求从工具栏中删除标题
                      【解决方案16】:

                      toolbar.setTitle(null);//去掉标题

                      【讨论】:

                        【解决方案17】:

                        很明显,但设计中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">
                        

                        【讨论】:

                        • 问题是删除工具栏标题,而不是工具栏本身。
                        • 我不是这么理解的,因为留下一个空栏是没有意义的,但我认为你一定是对的。
                        • 是的,有时我们在工具栏上有操作图标。例如“搜索图标”。所以在这种情况下我们需要工具栏,但我们不需要标题。
                        • 我明白了。但是,此提示可能对某人有用。一开始,我遇到了一些问题。
                        • 有时我在 StackOverflow 中浏览一个问题,并在某些答案中发现一些附带的好处。
                        【解决方案18】:

                        只是在&lt;application&gt;label 中添加一个空字符串(不是&lt;activity&gt;AndroidMenifest.xml 这样 -

                        <application
                                    android:label=""
                                    android:theme="@style/AppTheme">
                                    <activity
                                     .
                                     .
                                     .
                                     .
                                    </activity>
                            </application>
                        

                        【讨论】:

                          猜你喜欢
                          • 2014-12-22
                          • 1970-01-01
                          • 1970-01-01
                          • 2015-04-19
                          • 1970-01-01
                          • 2015-03-10
                          • 1970-01-01
                          • 1970-01-01
                          • 2014-12-14
                          相关资源
                          最近更新 更多