参考博客教程:

  • Android之toolbar的使用
  • Toolbar使用详解

Demo下载:

     下载链接

效果图:

  1. mainActivity

  1. secondActivity

使用流程:

  1. 修改App的主题样式,styles.xml文件更改如下:

  2. 在activity.main中添加ToolBar,在ToolBar中加入常用的一些控件,文字,菜单…

    <?xml version="1.0" encoding="utf-8"?>            
  3. 在res下创建文件夹menu,新建menu.xml文件。如下,always代表单独显示,never表示在列表中显示;

    <?xml version="1.0" encoding="utf-8"?>            
  4. MainActivity.java中需要进行ToolBar的渲染,和添加菜单的点击事件等;

    public class MainActivity extends AppCompatActivity {    private Toolbar mToolbar;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mToolbar = (Toolbar) findViewById(R.id.toolbar);        setSupportActionBar(mToolbar);    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.menu, menu);        return true;    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        switch (item.getItemId()) {            case R.id.toolbar_search:                Log.i("haha", "toolbar_search");                return true;            case R.id.toolbar_action1:                Log.i("haha", "toolbar_action1");                return true;            case R.id.toolbar_action2:                Log.i("haha", "toolbar_action2");                return true;        }        return true;    }}
  5. ToolBar的复用:我们不可能每个activity都写一个ToolBar布局,所以我们将其提取出来,单独写在一个文件里,然后在别的布局里include即可。还有关于自定义ToolBar,这里推荐看一下参考博客第二篇。

    • 建立toolbar.xml

      <?xml version="1.0" encoding="utf-8"?>
    • 建立activity_second.xml

      <?xml version="1.0" encoding="utf-8"?>        
    • 新建BaseActivity.java,仔细看一下执行流程。

      public abstract class BaseActivity extends AppCompatActivity{    private ToolBarHelper mToolBarHelper;    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(getContentViewId());        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);        if(toolbar != null){            setSupportActionBar(toolbar);            mToolBarHelper = new ToolBarHelper(toolbar);            handleToolBar(mToolBarHelper);        }    }    /**     * 子类去实现     * @param toolBarHelper     */    protected abstract void handleToolBar(ToolBarHelper toolBarHelper);    protected abstract int getContentViewId();    public static class ToolBarHelper{        private Toolbar mToolbar;        public ToolBarHelper(Toolbar toolbar) {            mToolbar = toolbar;        }        public Toolbar getToolbar() {            return mToolbar;        }        public void setTitle(String title){            mToolbar.setTitle(title);        }    }}
    • 新建SecondActivity.java,继承自BaseActivity,实现其抽象方法。

      public class SecondActivity extends BaseActivity{    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);    }    @Override    protected void handleToolBar(ToolBarHelper toolBarHelper) {        toolBarHelper.setTitle("更改标题");    }    @Override    protected int getContentViewId() {        return R.layout.activity_second;    }}



个人公众号:每日推荐一篇技术博客,坚持每日进步一丢丢…欢迎关注,想建个微信群,主要讨论安卓和Java语言,一起打基础、用框架、学设计模式,菜鸡变菜鸟,菜鸟再起飞,愿意一起努力的话可以公众号留言,谢谢…

更多相关文章

  1. android开发进阶学习博客资源
  2. 收藏的博客列表
  3. Android中EditText的错误消息显示
  4. 牛人博客
  5. android好博客
  6. 实验五 迭代法解线性方程组与非线性方程(android)
  7. android中各种组件的生命周期问题
  8. 转自于博客园---浅析LocationManager的位置定位
  9. 关于Handler导包问题

随机推荐

  1. Ubuntu android NDK 配置
  2. android 图片自动切换
  3. shape画listview分割线
  4. Android在开机时自动启动一个应用程序
  5. android之知识点小结一
  6. android manifest.xml中元素含义android
  7. 让EditView只能输入电话号码 同时还是密
  8. 2013.08.15——— android Fragment的简
  9. Android布局
  10. 最新Android(安卓)ADT, SDK, SDK_tool等