在Android应用程序中,Toolbar.setTitle方法无效-应用程序名称显示为标题

我正在尝试使用android-support-v7:21库创建简单的应用程序。


代码段:

MainActivity.java


public class MainActivity extends ActionBarActivity {


    Toolbar mActionBarToolbar;


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);


        mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);            

        mActionBarToolbar.setTitle("My title");

        setSupportActionBar(mActionBarToolbar);

}

activity_main.xml


<LinearLayout

    xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:fitsSystemWindows="true"

    android:orientation="vertical">


    <android.support.v7.widget.Toolbar            

        android:id="@+id/toolbar_actionbar"

        android:background="@null"

        android:layout_width="match_parent"

        android:layout_height="?actionBarSize"

        android:fitsSystemWindows="true" />


</LinearLayout>

但是显示的是工具栏%application name%上的“ My title”。

似乎setTitle方法无效。

我想显示“我的标题”。


UPD: 以前styles.xml是:


<style name="AppTheme" parent="Theme.AppCompat">

    <item name="windowActionBar">false</item>

</style>

因此,我认为未使用actionbar。我添加NoActionBar到样式父:


<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">

    <item name="windowActionBar">false</item>

</style>

但是问题没有解决。


斯蒂芬大帝
浏览 865回答 3
3回答

慕尼黑5688855

找到了解决方案:代替:mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;mActionBarToolbar.setTitle("My title");setSupportActionBar(mActionBarToolbar);我用了:mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;setSupportActionBar(mActionBarToolbar);getSupportActionBar().setTitle("My title");

波斯汪

对于在设置SupportActionBar之后需要通过工具栏设置标题的任何人,请阅读此内容。支持库的内部实现仅在设置SupportActionBar时检查工具栏是否具有标题(非null)。如果存在,则将使用此标题代替窗口标题。然后,您可以在加载真实标题时设置虚拟标题。mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);mActionBarToolbar.setTitle("");setSupportActionBar(mActionBarToolbar);后来...mActionBarToolbar.setTitle(title);
打开App,查看更多内容
随时随地看视频慕课网APP