主要思路
如果是上方toolbar则需要在activity中设置为无actionbar。
toolbar由三部分组成:
- 布局文件中的定义部分
- 在java代码中的设置(部分放到布局文件中也行,但放在java代码中更灵活)
- 如果需要按钮:menu布局文件及java代码中的listener
具体代码
需要import的主要的包:
- android.support.v7.widget.Toolbar
【java代码部分】
随Activity存在的则在Activity的onCreate方法中加入代码,并在相应的布局文件中加入定义。
随Fragment存在的则在Fragment的onCreateView方法中加入代码,并在相应的布局文件中加入定义。
如果按钮的响应部分与Fragment有关则需放在Fragment的onCreateView方法中。
Toolbar toolbar1 = (Toolbar) findViewById(R.id.toolbar_xx);
toolbar1.setXXX(...);
toolbar1.setXXX(...);
toolbar1.setXXX(...);
//如果有按钮需要响应的
toolbar.inflateMenu(R.menu.xxxxxxx);
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener()
{
@Override
public boolean onMenuItemClick(MenuItem item)
{
switch (item.getItemId())
{
case R.id.menu_xx_list_button1:
break;
case R.id.menu_xx_list_button2:
break;
}
return true;
}
});
【menu部分】
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
>
<item
android:id="@+id/menu_xx_button1"
android:icon="@mipmap/ic_menu_button1"
android:title="@string/menu_button2"
app:showAsAction="..."
...
/>
<item
android:id="@+id/menu_xx_button2"
android:icon="@mipmap/ic_menu_button2"
android:title="@string/menu_button2"
app:showAsAction="..."
...
/>
</menu>
【Toolbar布局部分】
如果只用一次可以直接放在父元素的布局文件里面。
如果需要复用可以放在一个单独的布局文件里面。
此处以放在父元素的布局文件里面为例。
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_xx"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/..."
android:titleTextColor="..."
...
/>