android - 设置工具栏标题在 onCreate() 中不起作用

标签 android toolbar android-appcompat

我在设置工具栏标题时遇到问题,这似乎只有在出现延迟时才有效。

例如,我的应用“预测”的简单 oncreate() 方法

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.bind(this);
    setSupportActionBar(_toolbar);
    setTitle("ABCDEFG");
}

当应用程序运行时,工具栏上有我的应用程序的名称,而不是“ABCDEFG”。

但是,如果我在设置标题之前延迟 200 毫秒......

    Observable.just("ABCDEFG")
            .delay(200,TimeUnit.MILLISECONDS)
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(this::setTitle);

我的工具栏标题正确显示为“ABCDEFG”

用工具栏做任何事情都是一样的,有谁知道这里到底发生了什么?以及如何在不拖延的情况下解决这个问题?

这是我的工具栏 xml..

<android.support.design.widget.AppBarLayout
    android:id="@+id/appBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fitsSystemWindows="true"
    android:theme="@style/AppTheme.AppBarOverlay">


    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?android:attr/actionBarSize"
        app:layout_collapseMode="pin"
        app:layout_scrollFlags="scroll"
        app:popupTheme="@style/AppTheme.PopupOverlay" />


</android.support.design.widget.AppBarLayout>

感谢您的帮助!

编辑忘记提到 setTitle() 只是调用 _toolbar.setTitle(title)

最佳答案

如果您调用setSupportActionBar(Toolbar),那么Action Bar 将负责处理标题,因此您需要调用getSupportActionBar().setTitle("My Title"); 设置自定义标题。

同时检查此链接,其中 toolbar.setTitle("My title"); 可能会导致如下问题:- In android app Toolbar.setTitle method has no effect – application name is shown as title

而toolbar就是action bar的一般形式。

我们可以将多个工具栏作为布局小部件,但操作不是。

因此更好的方法是使用 getSupportActionBar().setTitle("My Title");

关于android - 设置工具栏标题在 onCreate() 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44989265/

相关文章:

android - 是否可以在 HTML 5 Phonegap JavaScript 应用程序中创建 Android 状态栏通知?

java - 无法实例化类 : android. support.v7.widget.SearchView

android - 获取与 facebook for android 同步的联系人照片

具有动态固定标题的 Android 可滚动 TableLayout

java - 位图在 Android 中返回 Null

position - 如何使内联ckeditor工具栏固定在顶部而不是 float

android - 带有文本选择控件的 float 工具栏

iphone - 将图像转换为 iPhone 工具栏图标

android - 在颜色选择器中使用 appcompat 的 ?colorAccent 似乎不起作用

Android appcompt 库 23.1.1 : TabLayout. Tab.setCustomView() NullPointerException