ITPub博客

首页 > IT职业 > IT图书 > Android ToolBar项目封装之踩坑过河

Android ToolBar项目封装之踩坑过河

IT图书 作者:matador 时间:2021-09-09 09:50:31 0 删除 编辑

一、简介

继承关系:

java.lang.Object
       android.view.View
           android.view.ViewGroup
               android.widget.Toolbar

其实toolbar就是一个封装好的ViewGroup 
其主要五大部分对应的子View如下:

//菜单,ActionMenuView也是个ViewGroupprivate ActionMenuView mMenuView;//主标题private TextView mTitleTextView;//副标题private TextView mSubtitleTextView;//导航按钮private ImageButton mNavButtonView;//Logo图标private ImageView mLogoView;

Android 设置theme中的坑,然后在需要使用Toolbar的activity里给他配上这样的theme即可:

关于theme中几个color字段的描述看谷歌官方图,

或者看谷歌文档(自备梯子):Material Theme

由于我们项目里设定了toobar的高度,这里指定了actionBarSize,然后通过设置toolbar高度为这个值;

2.由于项目中toolbar归属于fragment管理,所以这里是将toolbar封装在fragment中处理了,这里通过各个fragment的xml添加

butterknife链接

①首先注入toolbar及自定义部分中除最右边图标的控件,因为最右边图标我们项目中一般menu就够用了:

 @BindView(R.id.toolbar)
 protected Toolbar mToolBar; @BindView(R.id.center_title)
 TextView mCenterTitle; @BindView(R.id.nav_left_text)
 TextView mNavLeftText;

②然后在初始化fragment视图时候将mToolBar、mCenterTitle、mNavLeftText传给其子fragment进行定制,这三个控件传递出去后完全可以定制navigationicon、logo、title与subtitle、自定义部分这四个部分:

以下代码中的initview和popFragment是我封装好的在fragment的OncreateView时候调用的,详细封装请看:[浅谈Activity,Fragment模块化封装],(http://blog.csdn.net/zzz_zzz_z/article/details/51521041)

@Overrideprotected void initView(View view, Bundle savedInstanceState) {
      initToolBar(mToolBar, mCenterTitle, mNavLeftText);
}
protected void initToolBar(Toolbar toolbar, TextView centerTitle, TextView navLeftText){
        ((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);
        ((AppCompatActivity)getActivity()).getSupportActionBar().setDisplayShowTitleEnabled(false);
toolbar.setNavigationIcon(R.drawable.nav_back_light);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {            @Override
            public void onClick(View v) {
                popFragment();
            }
        });
    }

http://www.apkbus.com/blog-822721-76452.html

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3589/viewspace-2813207/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 数据结构跟算法
请登录后发表评论 登录
全部评论

注册时间:2019-08-14

  • 博文量
    94
  • 访问量
    1104