Android工具栏更改了片段的标题练习

时间:2018-02-19 13:59:00

标签: android android-fragments

我想知道在浏览片段时是否有一些常用的更新工具栏标题的最佳实践模式。

我使用了一种方法,有点好,因为它让片段在恢复应用程序时恢复其标题非常重要。

我曾经用setToolbarTitle方法创建一个接口。

public interface InteractionListener {
    void setToolbarTitle(@StringRes int title);
}

然后我会在root活动中实现它。

@Override
public void setToolbarTitle(@StringRes int title) {
    if (getSupportActionBar() != null) {
        getSupportActionBar().setTitle(title);
    }
}

在片段onStart回调中,我会设置标题:

@Override
public void onStart() {
    super.onStart();
    listener.setToolbarTitle(title);
}

但是,这种方法需要3个不同的部分。我想知道,也许有一种更简单的方法可以做到这一点?

2 个答案:

答案 0 :(得分:0)

我是在Fragment的onResume方法中完成的。考虑一下,您可以导航回FragmentManager历史记录,然后标题也应相应更改。

答案 1 :(得分:0)

你所遵循的方法对我来说似乎很好。 但是,您可以使用没有操作栏的活动,并手动添加此工具栏

像这样扩展您的主题

<style name="MyAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
</style>

在清单

中应用这样的主题
<activity
    android:name=".MyAwesomeActivity"
    android:theme="@style/MyAppTheme"
    />

然后您的活动和每个片段都可以拥有自己的工具栏,如此

<android.support.v7.widget.Toolbar
    android:id="@+id/tool_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:minHeight="?attr/actionBarSize"/>

现在Activity和每个片段都可以设置自己的标题,而不需要在不同的生命周期方法上更新标题。