删除工具栏字幕

时间:2016-11-23 23:59:42

标签: java android android-toolbar

我们如何正确删除工具栏的副标题并将标题放回原位?

执行此操作getSupportActionBar().setSubtitle(null);仅删除文字,但标题仍位于顶部,this image represents the behaviour.

我也尝试过这个尝试来刷新它,但是也不起作用:

getSupportActionBar().setSubtitle(null);
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setDisplayShowTitleEnabled(true);

XML代码:

    <android.support.v7.widget.Toolbar
    android:id="@+id/settingsToolbar"
    android:layout_width="match_parent"
    android:layout_height="@dimen/toolbar_height"
    android:paddingTop="@dimen/toolbar_padding"
    android:minHeight="@dimen/toolbar_min_height"
    android:background="@color/colorPrimary"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:animateLayoutChanges="true"/>

设置工具栏:

    Toolbar toolbar = (Toolbar)findViewById(R.id.settingsToolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setTitle("Settings");
    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

这不是this question的重复,因为接受的答案无法解决。

2 个答案:

答案 0 :(得分:2)

这样做:

toolbar.setSubtitle(null); toolbar.setLayoutTransition(new LayoutTransition());

答案 1 :(得分:1)

问题出在android:animateLayoutChanges="true"

如果你删除它会起作用但它不会有漂亮的动画,现在我已经解决了这个问题:

public void changeSubtitle(@Nullable String subtitle) {

    if (subtitle == null) {
        toolbar.setLayoutTransition(null);
        getSupportActionBar().setSubtitle(null);
    } else {
        toolbar.setLayoutTransition(new LayoutTransition());
        getSupportActionBar().setSubtitle(subtitle);
    }
}

添加字幕时会动画,但在删除时不会。