我在设置工具栏标题时遇到问题,这似乎只有在出现延迟时才有效。
例如,我的应用“预测”的简单 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/