1.新建的项目中,默认使用的是ActionBar,为了能够正常使用ToolBar,我们需要隐藏原来的ActionBar。(每个活动最顶部的标题栏)
在values/styles.xml中做出如下修改:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <...> <...> </style>
2.修改activity_main.xml中的代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent“ android:layout_height="match_parent"
...> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_content" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" android:popupTheme="@style/ThemeOverlay.AppCompat.Light" > <TextView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="美团"
android:textSize="20sp"/>
</android.support.v7.widget.Toolbar>
<RecyclerView....><>
</LinearLayout>
3.丰富Toolbar~添加菜单
新建res/menu文件夹,在文件夹下新建一个Menu resourse file,创建一个toolbar.xml文件
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context=".Main1" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/addShop" android:title="添加店铺" android:icon="@drawable/add" android:typeface="serif"> </item> <item android:id="@+id/shop" android:title="我的店铺" android:icon="@drawable/shop" android:typeface="serif"> </item> <item android:id="@+id/list" android:title="我的订单" android:icon="@drawable/list" android:typeface="serif">
</item> </menu>
意思是设置toolbar中的按钮
接着我们在Activity中,要重写onCreateOptionsMenu()方法,把这个菜单加载进去:
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.toolbar,menu) ; return true; }
这样就有一个菜单啦~
4.菜单的点击事件
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.shop: ... return true; case R.id.addShop: ... return true; case R.id.list: ... return true; } return true; }
当然之前要有
Toolbar toolbarMain1 = (Toolbar) findViewById(R.id.toolbarMain1);
setSupportActionBar(toolbarMain1);
ActionBar actionBar = getSupportActionBar();