使用建造者设计模式打造万能Navigationbar框架

1、 自定义头部导航栏功能,扩展性强。

2、如果需要自己定义布局只需要继承AbsNavigationBar 这个类就行 参照我的DefauleNavigationBar写法就可以完成。

最简单的用法

new DefauleNavigationBar.Builder(this).setTitle("我是标题")
                .setBackClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        Toast.makeText(MainActivity.this,"点击左边图片",Toast.LENGTH_SHORT).show();
                    }
                }).setRightClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this,"点击右边",Toast.LENGTH_SHORT).show();
            }
        }).setRightText("右边文字").builer();

3、如果有仔细看可能会有点疑惑,为什么不需要添加布局,因为我们的布局是上面还有两层布局嵌套一个是直接new出来的FrameLayout,然后在把系统的布局add进这个FrameLayout布局中,最后才是我们自己的布局。我们的布局就是放到content这个id的LinearLayout中 然后获取第0个位置 就是我们自己的布局了,最后在把这个标题栏add进第0个位置

private void createAndBindView(){

        if (mParams.mParent ==null){
            ViewGroup activityRoot = (ViewGroup)((Activity)mParams.mContext).findViewById(android.R.id.content);
            mParams.mParent = (ViewGroup) activityRoot.getChildAt(0);
        }

        if (mParams.mParent == null){

            return;
        }

        mNavigationView = LayoutInflater.from(mParams.mContext).inflate(bindLayoutId(),mParams.mParent,false);

        mParams.mParent.addView(mNavigationView,0);

        applyView();
    }

代码地址

你可能感兴趣的:(使用建造者设计模式打造万能Navigationbar框架)