已投入公司项目多时,没有任何毛病,可胜任任何需求,点击此处下载Demo
想了解实现原理的可以参考文章:纯手工打造一个通用的标题栏 TitleBar
build.gradle
文件中加入buildscript {
repositories {
maven { url 'https://jitpack.io' }
}
}
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
build.gradle
文件中加入dependencies {
// 标题栏框架:https://github.com/getActivity/TitleBar
implementation 'com.github.getActivity:TitleBar:9.2'
}
<declare-styleable name="TitleBar">
<!-- 标题栏背景 -->
<attr name="android:background" />
<!-- 标题栏样式 -->
<attr name="barStyle">
<enum name="light" value="0x10" />
<enum name="night" value="0x20" />
<enum name="transparent" value="0x30" />
<enum name="ripple" value="0x40" />
</attr>
<!-- 子控件水平内间距 -->
<attr name="childPaddingHorizontal" format="dimension" />
<!-- 子控件垂直内间距(可用于调整标题栏自适应的高度) -->
<attr name="childPaddingVertical" format="dimension" />
<!-- 标题 -->
<attr name="title" format="string" />
<attr name="titleColor" format="reference|color" />
<attr name="titleSize" format="dimension" />
<attr name="titleGravity">
<flag name="left" value="0x03" />
<flag name="right" value="0x05" />
<flag name="center" value="0x11" />
<flag name="start" value="0x00800003" />
<flag name="end" value="0x00800005" />
</attr>
<attr name="titleStyle">
<flag name="normal" value="0" />
<flag name="bold" value="1" />
<flag name="italic" value="2" />
</attr>
<attr name="titleIcon" format="reference" />
<attr name="titleIconWidth" format="dimension" />
<attr name="titleIconHeight" format="dimension" />
<attr name="titleIconPadding" format="dimension" />
<attr name="titleIconTint" format="color" />
<attr name="titleIconGravity">
<flag name="top" value="0x30" />
<flag name="bottom" value="0x50" />
<flag name="left" value="0x03" />
<flag name="right" value="0x05" />
<flag name="start" value="0x00800003" />
<flag name="end" value="0x00800005" />
</attr>
<!-- 左标题 -->
<attr name="leftTitle" format="string"/>
<attr name="leftTitleColor" format="reference|color" />
<attr name="leftTitleSize" format="dimension" />
<attr name="leftTitleStyle">
<flag name="normal" value="0" />
<flag name="bold" value="1" />
<flag name="italic" value="2" />
</attr>
<attr name="leftIcon" format="reference" />
<attr name="leftIconWidth" format="dimension" />
<attr name="leftIconHeight" format="dimension" />
<attr name="leftIconPadding" format="dimension" />
<attr name="leftIconTint" format="color" />
<attr name="leftIconGravity">
<flag name="top" value="0x30" />
<flag name="bottom" value="0x50" />
<flag name="left" value="0x03" />
<flag name="right" value="0x05" />
<flag name="start" value="0x00800003" />
<flag name="end" value="0x00800005" />
</attr>
<attr name="leftBackground" format="reference|color" />
<!-- 右标题 -->
<attr name="rightTitle" format="string" />
<attr name="rightTitleColor" format="reference|color" />
<attr name="rightTitleSize" format="dimension" />
<attr name="rightTitleStyle">
<flag name="normal" value="0" />
<flag name="bold" value="1" />
<flag name="italic" value="2" />
</attr>
<attr name="rightIcon" format="reference" />
<attr name="rightIconWidth" format="dimension" />
<attr name="rightIconHeight" format="dimension" />
<attr name="rightIconPadding" format="dimension" />
<attr name="rightIconTint" format="color" />
<attr name="rightIconGravity">
<flag name="top" value="0x30" />
<flag name="bottom" value="0x50" />
<flag name="left" value="0x03" />
<flag name="right" value="0x05" />
<flag name="start" value="0x00800003" />
<flag name="end" value="0x00800005" />
</attr>
<attr name="rightBackground" format="reference|color" />
<!-- 分割线 -->
<attr name="lineVisible" format="boolean" />
<attr name="lineDrawable" format="reference|color" />
<attr name="lineSize" format="dimension" />
</declare-styleable>
mTitleBar.setOnTitleBarListener(new OnTitleBarListener() {
@Override
public void onLeftClick(View view) {
ToastUtils.show("左项View被点击");
}
@Override
public void onTitleClick(View view) {
ToastUtils.show("中间View被点击");
}
@Override
public void onRightClick(View view) {
ToastUtils.show("右项View被点击");
}
});
public class XxxApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// 初始化 TitleBar 默认样式
TitleBar.setDefaultStyle(new ITitleBarStyle());
}
}
性能最佳:不使用 LayoutInflater,而使用代码创建 View 的形式
体验最优:TitleBar 默认样式效果已经非常好,可下载 Demo 测试
支持操控子控件:可以在代码中获取 TitleBar 的子控件进行调用相关的 API
兼容沉浸式状态栏:兼容 Github 的沉浸式状态栏框架,达到完全沉浸的效果
框架兼容性良好:本框架不依赖任何第三方库,支持兼容所有的安卓版本
支持全局配置样式:可以在 Application 中初始化 TitleBar 样式,达到一劳永逸的效果
安卓技术中台:AndroidProject
网络框架:EasyHttp
权限框架:XXPermissions
吐司框架:ToastUtils
国际化框架:MultiLanguages
悬浮窗框架:XToast
Shape 框架:ShapeView
Gson 解析容错:GsonFactory
日志查看框架:Logcat
Copyright 2018 Huang JinQun
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
需要添加titlebar的布局,修改titlebar的高度,以及详细指明了popupwindow的使用 package com.estrongs.android.ui.homepage.blocks; import com.estrongs.android.pop.R; import android.app.Activity; import android.os.Bundle; import an
Android标题栏TitleBar全攻略 Android开发技术 2013 年 3 月 24 日 很多细心的网友发现Android浏览器的标题栏TitleBar的功能比较多,细心的网友在查看Browser时会发现,从左到右依次为网站图标(favicon)、标题、最右边的动画进度条(圆圈)、背景进度条(和前面的不在一层),今天我们就一起来看看Android标题栏高级实现方法。 在Android B
gradle版本 classpath "com.android.tools.build:gradle:7.0.4" 项目根目录下的build.gradle里dependencies下添加 //TitleBar implementation 'com.github.getActivity:TitleBar:8.6' settings.gradle文件添加 maven {url "https://ji
实现状态栏向上滑动,控制titlebar类似相关的控件隐藏和显示的 修改透明度 主要实现思路 1.主要是通过监听scrllview的滑动scrollY的高度控制titlebar的显示或隐藏以及和状态栏的透明或非透明(沉浸式状态栏效果) 大致思路步骤说明(具体还是看代码) 1初始化状态栏 :initStatusBar()方法 2.设置titlebar的高度 需要处理statusbar的高度 :onA
let menuButtonObject = wx.getMenuButtonBoundingClientRect(); wx.getSystemInfo({ success: res => { let statusBarHeight = res.statusBarHeight, navTop = menuButtonObject.top,/
最近写了好几个小项目,每个title的设计都是大同小异,左边返回按钮中间标题使用文字或者图片,右边也是文字或者图片。大体都是这样的设计,但是每个界面都要画一遍title说实话真的很烦。 1.先画一个titlebar的布局文件 titlebar.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="
title_bar.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_wi
为了修改样式,便于后续皮肤的更换,重绘了QDockWidget 的titleBar totalTitleBar.h #ifndef TOTALTITLEBAR_H #define TOTALTITLEBAR_H #include <QSize> #include <QDockWidget> #include <QMouseEvent> #include <QWidget> #include <Q
供ALV输出EXCEL时调用。 动态地改变TITLEBAR上的文字描写叙述,详细使用方法例如以下: 1、双击TITLEBAR。进入TITLEBAR的编辑框,在这里写入&1,相当于宏定义的宏的參数。 2、使用SET TITLEBAR 'TITLBAR' WITH P_TITLE. 来指定变量。这样TITLEBAR输出的就是P_TITLE这个变量的值。 注意:标准函数:POPUP_WI
主要内容:1 如何在Swing修改TitleBar图标,2 Swing修改TitleBar图标的案例1 如何在Swing修改TitleBar图标 Frame类的setIconImage() 方法用于更改Frame或Window的图标。它将更改在“Frame”或“Window”左侧显示的图标。 该工具包类用于获取图像类的实例在AWT和Swing的。 Toolkit类是Abstract Window Toolkit(AWT)中每个实现的抽象 超类。Toolkit的子类用于绑定各种组件。它继承了Obj
我目前正在使用OpenJDK11和OpenJFX构建一个应用程序。它编译得很好,并启动,但没有标题栏,如果我单击靠近应用程序边缘,它注册为在它后面的任何窗口上的单击。 我正在使用IntelliJ IDEA,花了一段时间才弄清楚如何将OpenJFX与它一起使用。不管怎样,以下是系统的详细信息: 我运行的是初等OS5.0Juno(基于Ubuntu18.04,一切都是GTK)IntelliJ IDEA(