Android ActionBar不会显示代码

时间:2016-11-10 19:24:54

标签: java android xml

首先,我知道有很多SO可以解决类似的问题。我已经仔细检查了所有这些,并且所提供的答案都没有帮助解决我的问题。

我无法在我的android.support.v7.widget.Toolbar组件上显示标题(或后退按钮)。无论我尝试过什么。

我的Android活动看起来像( my_activity.xml ):

<?xml version="1.0" encoding="utf-8"?>
<layout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:bind="http://schemas.android.com/apk/res-auto">
    <data>
        <variable name="infos" type="com.mycompany.orm.adapters.ListViewAdapter"/>
    </data>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:weightSum="10">

        <android.support.v7.widget.Toolbar
            android:id="@+id/my_toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/buttonBackground"
            android:elevation="4dp"
            android:logo="@drawable/ic_close_white_24dp" />

        <ListView
            android:id="@+id/my_listview"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:divider="@color/windowBackground"
            bind:items="@{infos.list}"/>
    </RelativeLayout>
</layout>

活动onCreate为( MyActivity.java ):

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.my_activity);

    Toolbar toolbar = (Toolbar) findViewById(R.id.my_toolbar);
    if (toolbar != null) {
        toolbar.setTitle("My Name Here");   // Never shows up
        setSupportActionBar(toolbar);

        ActionBar actionBar = getSupportActionBar();
        if (actionBar != null) {
            actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_CUSTOM, ActionBar.DISPLAY_SHOW_CUSTOM);
            actionBar.setTitle("Hello World!");       // Never shows up
            actionBar.setDisplayHomeAsUpEnabled(true);
            actionBar.setHomeAsUpIndicator(R.drawable.ic_close_white_24dp);
            actionBar.setDisplayShowTitleEnabled(true);
            actionBar.show();
        }
    }
}

但是使用这段代码,我只看到一个空白的工具栏。我从未看过该文字(My Name HereHello World!。但是,如果我将行bind:title="Testing"添加到XML的Toolbar元素,我会看到标题显示为< strong>测试。但是,我希望能够操作工具栏/操作栏的外观,所以我希望能够在代码中完成。

有谁知道这可能会出错?

2 个答案:

答案 0 :(得分:3)

尝试在 AndroidManifest.xml 中设置标签

   <activity
        android:name="yourpackagename.Activity"
        android:label="My Name Here"/>

否则,如果要以编程方式设置

如果您使用扩展AppCompatActivity类,请使用

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    toolbar.setTitle("My Name Here");
    this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);

如果使用extends Activity类,请使用

  ActionBar ab = getActionBar();
  ab.setTitle("My Name Here");

我建议尝试将上述解决方案用于我的工作。

答案 1 :(得分:0)

我遇到了同样的问题,这对我有用。

setSupportActionBar(toolbar);
getSupportActionBar().setTitle(""My Name Here"");