Android - 工具栏不显示任何内容

时间:2017-08-14 13:21:31

标签: java android xml toolbar android-toolbar

我的工具栏没有显示任何内容。一切似乎都很好,但它不起作用。即使我添加标题,工具栏也不会显示它。它只在我在acivity_basic.xml中更改它时才会改变颜色。感谢

清单

<activity android:name=".BasicActivity"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar">

BasicActivity.java

rootView = getLayoutInflater().inflate(R.layout.activity_basic, null);
    Toolbar toolbar = (Toolbar) rootView.findViewById(R.id.basic_toolbar);
    if(toolbar != null) {
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayShowTitleEnabled(true);
        getSupportActionBar().setTitle("My custom toolbar!");
        getSupportActionBar().setHomeButtonEnabled(true);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }
BasicActivity中的onCreateOptionMenu

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_basic, menu);
    return super.onCreateOptionsMenu(menu);
}

acivity_basic.xml

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_basic"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.android.sloth.BasicActivity">

<android.support.v7.widget.Toolbar
    android:id="@+id/basic_toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@android:color/white"
    android:elevation="4dp"/>

menu_basic.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  tools:context=".BasicActivity">


<item
    android:id="@+id/toolbar_menu"
    android:icon="@drawable/ic_menu_black_24dp"
    app:showAsAction="always"
    android:orderInCategory="100"
    android:title="Menu"
    >
</item>

1 个答案:

答案 0 :(得分:0)

这就是我对我的项目所拥有的。我在XML中的工具栏周围包装了一个AppBarLayout(带有coordinatorLayout)。我为onCreateOptionsMenu返回true而不是调用super.onCreateOptionsMenu()

我的其余代码与您目前的代码类似。你可以尝试看看它是否有帮助。

在MainActivity的onCreate()方法

if(toolbar !=null){
    toolbar.setSubtitle("My Toolbar"); 
    setSupportActionBar(toolbar);
    Actionbar abar = getSupportActionbar();
    if(aBar !=null){
        aBar.setDisplayHomeAsEnabled(false);
    }
}

在mainActivity的onCreateOptionsMenu(菜单菜单)

onCreateOptionsMenu(Menu menu){
    getMenuInflater().inflate(R.menu.menu_main, menu);

    MenuItem mi = menu.findItem(R.id.menu_search); 
    ... my custom handling for mi (change color, hide/show specific mi, etc).

    return true; 
}

在我的Activity XML

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">  


    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.design.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"  
            android:background="@android:color/transparent"
            android:elevation="4dp"
            android:theme="@style/AppTheme.AppBarOverlay"
            app:layout_collapseMode="pin"
            app:popupTheme="@style/AppTheme.AppBarOverlay" />
    </android.support.design.widget.AppBarLayout>

    <RelativeLayout... >
    ... rest of stuff
    </RelativeLayout>

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