我的工具栏没有显示任何内容。一切似乎都很好,但它不起作用。即使我添加标题,工具栏也不会显示它。它只在我在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>
答案 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>