基础库----------顶部的标题栏

小编使用的是newBaseLib开源库, 原项目GitHub地址:传送门

顶部的菜单栏现在在项目中几乎是不可或缺的,但是要自己去写一个,不说开发时间,对于现在快速开发来说,基本想都别想,不要重复造轮子、不要重复造轮子、不要重复造轮子


基础库----------顶部的标题栏_第1张图片
image.png

在xml中

     // 中间自定义视图

在使用布局声明的时候,这里特别说明几点,以免出现问题,命名空间大家都懂需要声明xmlns:tv="http://schemas.android.com/apk/res-auto",不声明,属性是不会出来的哟~~~~
另外 tv:fillStatusBar="false" 这个属性特别注意下,如果声明false那么就不会再标题栏上面多一个状态栏的高度,如果为true的话就会多一个状态栏高度,为什么这么做呢?有人会问,其实原因很简单,因为沉淀式状态栏的问题,具体是为true还是为false根据使用场景来决定~
标题栏的监听事件

titleBar.setListener(new CommonTitleBar.OnTitleBarListener() {
    @Override
    public void onClicked(View v, int action, String extra) {
        if (action == TopBarView.ACTION_LEFT_TEXT) {
            ...
        }
        // TopBarView.ACTION_LEFT_TEXT;        // 左边TextView被点击
        // TopBarView.ACTION_LEFT_BUTTON;      // 左边ImageBtn被点击
        // TopBarView.ACTION_RIGHT_TEXT;       // 右边TextView被点击
        // TopBarView.ACTION_RIGHT_BUTTON;     // 右边ImageBtn被点击
        // TopBarView.ACTION_SEARCH;           // 搜索框被点击,搜索框不可输入的状态下会被触发
        // TopBarView.ACTION_SEARCH_SUBMIT;    // 搜索框输入状态下,键盘提交触发,此时,extra为输入内容
        // TopBarView.ACTION_SEARCH_VOICE;     // 语音按钮被点击
        // TopBarView.ACTION_SEARCH_DELETE;    // 搜索删除按钮被点击
        // TopBarView.ACTION_CENTER_TEXT;      // 中间文字点击
    }
});

如果是自定义的样式

View rightCustomLayout = titleBar.getRightCustomView();
rightCustomLayout.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

    }
});
// 布局child view添加监听事件
rightCustomLayout.findViewById(R.id.子控件ID).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

    }
});

如果出现全屏与键盘的冲突导致的键盘被遮挡问题,请在Activity.onAttachedToWindow()方法中加入如下代码

  @Override
  public void onAttachedToWindow() {
      super.onAttachedToWindow();
      KeyboardConflictCompat.assistWindow(getWindow());
  }

这样一个通用的标题栏完成了
如果有问题再github上提交bug,这个库将持续维护下去

你可能感兴趣的:(基础库----------顶部的标题栏)