Toolbar简单封装

ToolBar 的封装 ToolBar 的封装,使代码步重复,快捷开发 立即下载

Toolbar简单封装
1、常规方法
对Toolbar进行封装,为后续使用做铺垫,作者认为常见的对Toolbar封装的有2中方法。
第一种在BaseActivity中封装,这种封装不足之处在于BaseActivity会比较复杂,耦合性高,不利于后期维护,BaseActivity一般封装语言切换等(个人见解可能有误)。
第二种封装Toolbar的同时,还需要在布局文件中使用<include>导入ToolBar布局,或者直接写ToolBar布局,不利于维护,例如:Activity中删除Toolbar的同时,还要删除<include>导入的ToolBar布局(个人见解可能有误)。

2、本文方法
2.1 Toolbal的布局文件"layout_toolbar.xml"
    <?xml version="1.0" encoding="utf-8"?>

    <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@color/colorWhite"
        android:elevation="4dp">

        <ImageView
        android:id="@+id/tb_back"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/ic_back"
        android:clickable="true"/>

        <ImageView
        android:id="@+id/tb_ver"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/ic_vertical"/>

        <TextView
        android:id="@+id/tb_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20dp"
        android:text="ECG"/>

    </android.support.v7.widget.Toolbar>

2.2 style修改
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

2.3 color修改
    <!-- Custom the color -->
    <color name="colorWhite">#FFFFFF</color>

2.4 封装Toolbar类代码
    public class SettingToolBar {

        /**
         * Set the toolbar
         * @param activity It represents current using activity
         * @param toolbarTitle It represents title of toolbar
         */

        public SettingToolBar(final Activity activity, String toolbarTitle){
        // Setting the animation of toolbar
        final ScaleAnimation sa = new ScaleAnimation(1,2,1,1,
            Animation.RELATIVE_TO_PARENT,0.5f,Animation.RELATIVE_TO_PARENT,0.5f);
        sa.setDuration(500);

        // Get the root layout
        ViewGroup parentView = (ViewGroup)activity.findViewById(android.R.id.content);

        // Add the toolbar into the layout
        LayoutInflater inflater = LayoutInflater.from(activity);
        Toolbar toolbar =  (Toolbar)inflater.inflate(R.layout.layout_toolbar, parentView, false);
        parentView.addView(toolbar);

        // Set the backImage
        ImageView tbBack = (ImageView) toolbar.findViewById(R.id.tb_back);
        // Add the event
        tbBack.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View view){
               view.startAnimation(sa);
               activity.finish();
            }
        });
        // Set the title of toolbar
        ((TextView)toolbar.findViewById(R.id.tb_title)).setText(toolbarTitle+"");
        }
    }


2.5 Activity代码
    public class MainActivity extends BaseAppCompatActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        new SettingToolBar(this, "Toolbar");
        }
    }


 

对toolbar的封装 Android 5.0的时候就用Toolbar替代了ActionBar,而ActionBarActivity又被AppCompatActivity替代,那么使用方法就是引入Toolbar设置到Activity中 一个应用的几乎所有界面都需要头部app bar,为了能够方便各个界面方便使用,统一管理,这里就来对toolBar进行简单的封装 立即下载

相关推荐

史上最新最强封装toolbar

由于公司项目渐渐落地,无聊时间封装了史上最新最强封装toolbar,供大伙学习和参考。

Android之ToolBar项目封装,踩坑过河

一、简介 继承关系: java.lang.Object ↳ android.view.View ↳ android.view.ViewGroup ↳ android.widget.Toolbar1234 其实toolbar就是一个封装好的ViewGroup 其主要五大部分对应的子View如下: //菜单,ActionMenuV

Liyunlong 2110

我的Android开发之旅(一):BaseActivity的浅入之简单封装 Toolbar

我的Android开发之旅(一):BaseActivity的浅入为什么要写BaseAcivity一行代码实现 Toolbar 效果“少啰嗦,先看东西”最后 为什么要写BaseAcivity 我们都知道在做Android应用开发的时候都需要创建一个Activity,但很多时候我们的程序有多个界面并且每个界面都有相似的内容(例如:Toolbar、DrawerLayout)和后台的操作有共同的方法,这个时候我们写一个BaseActivity作为每一个Activity的基类,统一管理程序中的每个Activity。 一行代码实现 Toolbar 效果 activity_main.xml 的代码 Ma

Android ToolBar 基础使用——进阶封装BaseActivity(附源码)

前言    在2015年的Google I/O大会上推出Design Support库,这个库讲Material Design 中最具代表性的一些控件和效果进行了封装,使得开发者在即使不了解Material Design的情况下也能轻松地将自己的应用Material华。这篇博文就说讲解其中一个 ToolBar的控件,我们之前对于ActionBar是比较熟悉的,但是大多数开发中都是将其隐藏掉了,因为...

csdn_aiyang的博客 3023

用rsl_rl训练四足机器人走梅花桩:PPO算法调参实战与避坑指南

本文详细介绍了如何使用rsl_rl框架和PPO算法训练四足机器人在梅花桩上行走的实战经验。通过分析梅花桩场景的独特挑战,提供PPO算法关键参数配置策略、奖励函数设计方法以及常见问题的解决方案,帮助开发者高效实现机器人平衡控制。文章特别强调了仿真到实机的过渡技巧,最终实现98%的过桩成功率。

weixin_29103191的博客 220

杭电oj2023题题目详解(Java版)

杭电oj2023题详解

m0_51065958的博客 978

数字电路上拉下拉原理与PIC18微控制器应用

在数字电路设计中,上拉(Pull-up)和下拉(Pull-down)电阻是确保信号稳定性的基础技术。其原理是通过电阻将信号线偏置到确定电平,防止浮空输入导致的逻辑错误。典型应用包括开漏输出、按钮检测等场景,电阻值选择需平衡信号质量与功耗。现代微控制器如PIC18LF45K50集成了可编程上拉网络,但在DTH-08等传感器应用中,外部精密电阻往往能提供更好的通信稳定性。掌握GPIO配置寄存器和动态切换技术,可以优化单总线协议等特殊接口的实现,提升嵌入式系统可靠性。

weixin_33898876的博客 382

腾讯会议+OBS虚拟摄像头:解决多人屏幕共享的终极指南(附常见问题排查)

本文详细介绍了如何利用OBS虚拟摄像头技术,解决腾讯会议中多人屏幕共享的痛点。通过将OBS作为视频混流中心,可以突破腾讯会议单屏共享的限制,实现多屏幕、多窗口内容的同步展示,并提升演示的专业度。文章涵盖了Windows与Linux双平台的配置步骤、高阶场景搭建以及常见问题(如黑屏、画中画)的排查方法,是团队协作与专业演示的实用指南。

i8j9k0l1的博客 931

android——toolbar(默认高度)和状态栏的使用、右上角setting、FloatingActionButton悬浮按钮、封装自定义的toolbar(返回事件已经做统一处理)

一、状态栏的使用 状态栏的变色等操作,推荐使用依赖包: // 基础依赖包,必须要依赖 implementation 'com.gyf.immersionbar:immersionbar:3.0.0' // fragment快速实现(可选) implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' // kotlin扩展(可选) implementation 'com.gyf.immersionbar:immersionbar-kt

wy313622821的博客 1824

天融信防火墙NGFW4000(TG-4628)安装配置笔记

配置一台全新的天融信防火墙NGFW4000,配置完后,内网用户10.10.1.0/24和10.10.2.0/24可以通过防火墙上网,外网用户可以通过访问防火墙的外网接口地址来访问内网的WEB服务器10.10.1.200,并且内网用户也可以通过WEB服务器的外网地址进行访问。 网络说明: 防火墙外网接口地址:218.90.123.121/30 防火墙内网接口地址:19...

weixin_33671935的博客 4455

loadStop的原因导致的SSUSP

Total内存值是可用来调度的可用内存,当前可用内存为 0M。 loadSched和loadStop的阈值是根据 Total 内存和节点内存来做限制的。 loadStop 50G,现在有大量作业SSUSP,说明之前某个时间点该节点内存可能有低于50G的时候,导致作业SSUSP,具体是否是这个原因引起的需要用 bjobs -l JobID 看下作业的详细信息。 如果是loadStop的原因导致的 SSUSP,根据loadStop设置的阈值,Total 值高于loadStop值后,将逐步恢复挂起的作业

Blueberry521的博客 666

android Toolbar的封装

引言 你们还在用自定义标题栏吗,你们还在为actionbar标题不能居中不灵活苦恼吗,Toolbar一切问题都帮你搞定Toolbar 标题居中 编写带有Toolbar的基类 Toolbar 标题居中 Toolbar的标题是默认左对齐的,不过Toolbar继承于ViewGroup,直接布局中添加一个textView 居中显示就可以搞定 layout_toolbar.xml<?xml versi

越努力越幸运 1564

【系统架构设计师】预测试卷十:综合知识(75道选择题)

本文包含75道选择题,覆盖计算机系统、操作系统、网络、数据库、软件工程等核心知识域,其中系统架构设计与评估占比最高(19题)。题目难度稍高,注重灵活应用,题干全新且不与前8套重复。部分典型题目解析包括:计算机性能比较(CPU时间公式TLB/页表机制)、Cache写策略、流水线分支惩罚、管程条件变量、LRU近似算法、自旋锁适用场景、TCP字节流特性、Anycast应用、MVCC机制、分布式事务选型等。答案详解强调易错点,如性能比较需综合计算、TLB缺失不等于缺页、

数据知道的博客 478

Android ToolBar 的简单封装

使用过 ToolBar 的朋友肯定对其使用方法不陌生,因为其用法很简单,如果对 ActionBar 使用比较熟练的人来说,ToolBar 就更容易了!不过,相信大家在使用的过程中都遇到过这样一个问题,需要在每一个我们要使用的 xml 中添加 ToolBar 这个控件,比如我需要在 MainActivity中使用 ToolBar

钟钟的专栏 1万+

深度解析与实战:长短时记忆网络(LSTM)在股票走势预测中的应用(基于Python + PyTorch)

本文全面探讨了LSTM在股票价格预测中的应用,从理论基础到实践操作。文章首先强调了股票市场预测的重要性,并介绍了LSTM网络结构及其在处理时间序列数据中的优势。接着,详细说明了数据预处理的关键步骤,包括数据收集、清洗、特征选择和归一化。文章还讨论了LSTM模型的构建、训练和评估,并提供了Python及PyTorch的实操案例。最后,总结了LSTM在股票预测的成果,并提出了未来研究的方向,如模型优化和特征工程,旨在帮助读者掌握LSTM在股票价格预测中的应用,并探索提升模型性能的方法。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2102

第五节_PySide6基本窗口控件_主窗口和标签

本文介绍了PySide6中主窗口和标签控件的使用。主要内容包括: 窗口控件分类: QWidget是基础窗口部件,可作为独立窗口或子部件 QMainWindow提供标准应用程序框架,包含菜单栏、工具栏等 QDialog用于对话框,支持模态交互 主窗口创建: 演示了如何创建QMainWindow子类 实现了窗口居中、设置图标、状态栏等功能 提供了窗口几何信息的获取方法 QLabel标签控件: 继承自QFrame类 用于显示文本或图像 文章通过代码示例详细说明了主窗口的创建和使用方法,包括位置控制、图标设置等常见

su桥木的博客 1022

Toolbar的简单使用和封装

因为Actionbar的扩展性比较弱,所以一般都是自定义一个titlebar,但是现在有了toolbar,完全可以解决任何头布局的显示。 简单封装后的效果是这样的: 代码: public class MyToolbar { private Toolbar mToolbar; private AppCompatActivity mActivity

SunnyRivers 559

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

简单的封装通用的toolbar

本篇讲解如何简单的封装toolbar,用到了builder设计模式,使用起来也非常方便。 看看是怎么封装的吧! 首先创建一个toolbar布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ...

看了就忘,学了就废系列 433

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

BaseActivity结合toolbar的简单使用和封装

toolbar就不做过多的解释了,想必网上已经很多了,最近事情不多就写了个baseactivity+toolbar的封装,避免每次创建activity都写过多的冗长的代码,也可以避免每个activity都要include一下标题栏布局文件。直接上baseActivity代码,代码不多也有注释就不做过多解释了 package com.qingsui.toolbar; import android

青穗的博客 910

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

一个项目,一个Toolbar

需求在日常的开发当中,经常会用到Toolbar作为标题栏,如果在每个view里面都写一个Toolbar的话,显然有点冗余,一般情况下在每个项目里面都有一个BaseActivity,作为所有Activity的父类,我们就可以在BaseActivity中封装好Toolbar,在子类用BaseActivity提供的方法调用即可。展示来来来,往这边看,下面的的gif都是通过一个Toolbar实现的:是不是很

Sean_css的博客 942

如何自定义Toolbar 标题栏

本篇文章,接着 Toolbar的详细介绍和自定义Toolbar 文章而写。如果你对 Toolbar 的使用还太了解或只是简单的了解。那么你可以移步这里 Toolbar的详细介绍和自定义Toolbar。...

da_caoyuan的博客 3961

Android进阶 一个项目,一个Toolbar

需求 在日常的开发当中,经常会用到Toolbar作为标题栏,如果在每个view里面都写一个Toolbar的话,显然有点冗余,一般情况下在每个项目里面都有一个BaseActivity,作为所有Activity的父类,我们就可以在BaseActivity中封装好Toolbar,在子类用BaseActivity提供的方法调用即可。 展示 来来来,往这边看,下面的的gif都是通过一个Toolbar实现的:...

weixin_34403693的博客 89

自定义工具栏

花了几天时间,完成了自定义工具栏的封装涉及到的有  1。ImageListBox控件的开发 2。ToolBar按钮的重新布局1相当容易不到一个小时就写完了,对于2却花了相当长的时间,对于ToolButton的布局总算有了一次完整的学习,曾经考虑交换button的位置,最后还是用重新创建实现(Downto插入),这样简化了很多。至于界面的保存,就很简单了。

Lyris的专栏 1093
上一篇: jython环境安装、java调用python、中文乱码问题
下一篇: Fragment懒加载类
MasonYyp
博客等级 码龄9年 301粉丝 297原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值