我们如何正确删除工具栏的副标题并将标题放回原位?
执行此操作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 :(得分: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);
}
}
添加字幕时会动画,但在删除时不会。