本篇记录了navigation bar顶部导航栏的自定义方法,抛砖引玉,简单实现了常用的布局,在此基础上可添加较复杂的布局。

第一步:新建NavigationBar文件,继承与FrameLayout。

Android 开发:(十四)NavigationBar篇-自定义顶部导航栏_第1张图片

第二步:设置系统AppTheme为NoActionBar

在res/values目录下style.xml文件:

第三步: navigationbar.xml 布局

在navigationbar.xml文件中布局:
左边一个ImageView
中间TextView
右边一个ImageView

代码如下:

<?xml version="1.0" encoding="utf-8"?>                                

第四步: NavigationBar文件

调用xml布局,并实现NavigationBar协议方法。

    private TextView tvTitle;    private ImageView leftImage;    private ImageView rightImage;    public NavigationBar(@NonNull Context context) {        super(context);        initView(context);    }    public NavigationBar(@NonNull Context context, @Nullable AttributeSet attrs) {        super(context, attrs);        initView(context);    }    public NavigationBar(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        initView(context);    }    private void initView(Context context) {        View view = inflate(context, R.layout.navigationbar, this);        tvTitle    = view.findViewById(R.id.navigationbar_title);        leftImage  = view.findViewById(R.id.navigationbar_leftImage);        rightImage = view.findViewById(R.id.navigationbar_rightImage);    }

此时已完成navigationbar的创建,但是为了统一维护,便于管理,再添加几个封装方法,以实现不同需求。

第五步: 封装公共方法

1. title赋值
 public void setTitle(String title) {        tvTitle.setText(title);    }

Android 开发:(十四)NavigationBar篇-自定义顶部导航栏_第2张图片

2. 对左侧图片赋值
public void setLeftImage(Integer image) {        leftImage.setBackgroundResource(image);   }
3. 左侧图片并添加点击事件和title字体
 public void init(String title, boolean isLeftVisiable, OnClickListener leftListener){         tvTitle.setText(title);        if (isLeftVisiable){            leftImage.setVisibility(VISIBLE);            leftImage.setOnClickListener(leftListener);        }else {            leftImage.setVisibility(INVISIBLE);        }    }

Android 开发:(十四)NavigationBar篇-自定义顶部导航栏_第3张图片

4. 右侧图片赋值并添加点击事件
 public void rightTabBar(boolean isRightVisiable, Integer image,  OnClickListener rightListener){        rightImage.setBackgroundResource(image);        if (isRightVisiable){            rightImage.setVisibility(VISIBLE);            rightImage.setOnClickListener(rightListener);        }else {            rightImage.setVisibility(INVISIBLE);        }    }

Android 开发:(十四)NavigationBar篇-自定义顶部导航栏_第4张图片

更多相关文章

  1. Android画各种圆,饼图,环图,圆形图片
  2. Android:布局合集
  3. android TextView 结合SpannableString对部分内容设置颜色、字体
  4. android 图片压缩的几种方法
  5. 2011.10.14——— android 仿照微信的图片展示功能 之 基本功能
  6. 流媒体开发之-服务器图片的加载
  7. Android开发教程--设置ImageView图片的显示比例

随机推荐

  1. YUV420P、YUV420SP、NV12、NV21和RGB互相
  2. Android学习笔记(四四):第三方Java库的使用
  3. Android(安卓)轻松实现语音朗读
  4. Android用户界面设计:基本按钮
  5. Android中主题与样式
  6. Android应用程序注册广播接收器(registerR
  7. Android位图操作
  8. android 布局中 layout_gravity、gravity
  9. Android(安卓)Layout布局文件里的android
  10. Static interface methods are only supp