java - Android ActionBar 不显示在代码中设置的标题

标签 java android xml

首先,我知道有很多 SO 可以解决类似的问题。我已经对它们进行了全部搜索,但所提供的答案都无法帮助解决我的问题。

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

我有一个类似于 (my_activity.xml) 的 Android Activity :

<?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>

Activity 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 元素,我看到标题显示为 Testing。但是,我希望能够操纵工具栏/操作栏的外观,因此我会希望能够用代码来完成。

有人知道这可能出问题在哪里吗?

最佳答案

尝试在 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);

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

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

我建议尝试使用上述解决方案,它对我有用。

关于java - Android ActionBar 不显示在代码中设置的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40535470/

相关文章:

java - ListView 中的按钮 OnClickListener

java - 从 MySQL 数据库获取存储过程

java : I am getting only one element while parsing the values

java - 我目前正在为最后一年开发一个应用程序。没有出现错误,但是当我选择我的 searchScreen 应用程序崩溃

android - 在 android 上创建一个可观察的发射器

java - 膨胀 ListView 二进制 XML 行 0 时出错#

java - flamingo 是否支持从右到左的功能区菜单?

java - 从java调用带有特殊字符的url

android - Unresolved reference : viewModelScope

xml - 推荐用于格式化 XML DocBook 的工具链是什么?