Appcompat工具栏“android:title”属性不起作用

时间:2014-11-20 10:50:32

标签: android android-appcompat android-toolbar

我确信这是非常简单的,我只是在俯视。如果我在代码中设置标题,它似乎一切正常:

import android.support.v7.widget.Toolbar;
...
// Works fine
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle("My Title");

在布局xml中设置它不起作用:

<!-- Doesn't work -->
<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize"
    android:title="@string/my_title"/>

值得注意的是,我正在使用AppCompat v7库并对Android sdk版本18进行测试。

3 个答案:

答案 0 :(得分:9)

您没有使用正确的属性。我认为the Action Bar docs解释得最好。

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:yourapp="http://schemas.android.com/apk/res-auto" >

    <item android:id="@+id/action_search"
          android:icon="@drawable/ic_action_search"
          android:title="@string/action_search"
          yourapp:showAsAction="ifRoom"  />
    ...
</menu>
  

使用支持库中的XML属性

     

请注意,上面的showAsAction属性使用标记中定义的自定义命名空间。在使用支持库定义的任何XML属性时,这是必需的,因为旧设备上的Android框架中不存在这些属性。因此,您必须使用自己的命名空间作为支持库定义的所有属性的前缀。

换句话说,您需要将android:title更改为yourCustomPrefix:title

<YourRootViewGroup xmlns:app="http://schemas.android.com/apk/res/org.seeingpixels.photon"
    xmlns:android="http://schemas.android.com/apk/res/android"
    ... >

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        android:minHeight="?attr/actionBarSize"
        app:title="@string/my_title" />

</YourRootViewGroup>

答案 1 :(得分:1)

你能试试这段代码吗?

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(true);
getSupportActionBar().setTitle("title");

答案 2 :(得分:-1)

使用以下代码设置标题:

toolbar = (Toolbar) findViewById(R.id.toolbar);
this.setSupportActionBar(toolbar);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeButtonEnabled(true);