2016-11-23 63 views
2

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

这样做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的重复,因为接受的答案不能解决它。

+0

解决方案为我工作得很好。你能发布更多信息吗?代码/工具栏xml。 –

+0

请参阅编辑 – afellowcoder

+0

设置getSupportActionBar()。setSubtitle(null);对我来说工作也很好。 – Tasneem

回答

0

的问题是在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); 
    } 
} 

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

1

只是这样做:用 “空”

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