Android实现双击TitleBar回顶部的功能示例代码
作者:Tomoya 发布时间:2022-10-21 10:50:15
标签:android,双击回到顶部,titlebar
前言
本文介绍的内容是偶然发现的这个功能,就给移过来了,整理了一下,也是一个类就实现的,使用很方便
特别感谢@TakWolf大大的开源项目,学了好多Android方面的东西
双击返回顶部代码
public class DoubleClickBackToContentTopListener implements View.OnClickListener {
private final long delayTime = 300;
private long lastClickTime = 0;
private final IBackToContentTopView backToContentTopView;
public interface IBackToContentTopView {
void backToContentTop();
}
@Override
public final void onClick(View v) {
long nowClickTime = System.currentTimeMillis();
if (nowClickTime - lastClickTime > delayTime) {
lastClickTime = nowClickTime;
} else {
onDoubleClick(v);
}
}
public DoubleClickBackToContentTopListener(@NonNull IBackToContentTopView backToContentTopView) {
this.backToContentTopView = backToContentTopView;
}
public void onDoubleClick(View v) {
backToContentTopView.backToContentTop();
}
}
使用方法
public class CNodeActivity extends Activity implements
DoubleClickBackToContentTopListener.IBackToContentTopView {
private Toolbar toolbar;
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cnode);
toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle(R.string.cnode);
toolbar.setNavigationOnClickListener(v -> this.finish());
toolbar.setOnClickListener(new DoubleClickBackToContentTopListener(this));
listView = (ListView) findViewById(R.id.list_view);
listView.setAdapter(//TODO);
initData();
}
private void initData() {
//TODO
}
@Override
public void backToContentTop() {
listView.setSelection(0);
}
}
说明一下,DoubleClickBackToContentTopListener类里的delayTime属性是双击之间的时间差,这里默认设置的是300毫秒
就是这么简单,一个好的封装,可以省多少事呀!
总结
参考
https://github.com/TakWolf/CNode-Material-Design
来源:https://tomoya92.github.io/2017/03/31/android-doubleclick-backtotop/
0
投稿
猜你喜欢
- 需求背景进击的Python随着人工智能的兴起,Python这门曾经小众的编程语言可谓是焕发了第二春。以tensorflow、pytorch等
- 一、前言尽管Unity有一个像样的脚本编辑器(Mono),但很多人喜欢使用另一个编辑器。这篇短文解释了如何更改脚本编辑器,并介绍了Mono的
- 将SpringBoot项目部署到腾讯云注意:1、如果已经下载好MySql和JDK,可以直接跳过1、3步骤。但是不要忘记步骤2哦。2、如果已经
- Redis 简介Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。Redis 与其他 key - v
- 过去的每一year,涌现出越来越多的Java框架。就像JavaScript,每个人都认为他们知道一个好的框架的功能应该是怎么样的。连我的老祖
- 简介虽然java有自动化的GC,但是还会有内存泄露的情况。当然java中的内存泄露跟C++中的泄露不同。在C++中所有被分配的内存对象都需要
- 前言在这一期的文章中,我将继续介绍 Either,使用它构建树形结构,该结构允许我模拟 Scala 的模式匹配来构建遍历方法。在 Java
- 目录一:背景二:从 dump 文件中提取源代码1. 案例演示2. 使用 lm + savemodule 命令提取3. 使用 dumpdoma
- 条件(也称为条件队列 或条件变量)为线程提供了一个含义,以便在某个状态条件现在可能为 true 的另一个线程通知它之前,一直挂起该线程(即让
- 整理记录 AndroidStudio 把一个 module 项目打包成 jar 包。一、默认自动生成的 jar 包众所周知 android
- Feign自定义注解翻译器新建自定义注解MyUrlpackage org.crazyit.cloud.contract; impo
- 回顾Tomcat8打法先回顾下之前Tomcat789的打法这里先抛开 7 8之间的区别, 在8中,最后add到filterchain的都是一
- 本文实例讲述了Java接口的简单定义与实现方法。分享给大家供大家参考,具体如下:1、接口是Java中最终要的概念,接口可以理解为一种特殊的类
- 配置不生效的解决办法注意:如果配置不生效,则说明spring优先加载了其他配置:解决办法:添加启动参数 -Dlogging.config=c
- jar包打包实现jar包打包可以使用jar指令实现打包,在命令行中输入jar可以查看jar指令的内容 从最后显示的两个示例看出存在两种打包的
- 假定存在这样一种情况多个用户对数据库进行写,我们的业务逻辑规定,每个用户只能写一次,大部分用户也只发一次请求。public void wri
- 前言这个也是Java实验课程的一个作业,和Java实现简单的图形界面计算器一起做的,因为以前没有做过GUI编程,所以做的非常简陋,还有很多B
- 一、HttpBasic模式的应用场景HttpBasic登录验证模式是Spring Security实现登录验证最简单的一种方式,也可以说是最
- 本文实例为大家分享了Java实现简单的飞机大战游戏,控制主飞机的具体代码,供大家参考,具体内容如下接着上一篇:Java实现简单的飞机大战游戏
- 本文实例讲述了Java中的匿名对象定义与用法。分享给大家供大家参考,具体如下:一 点睛匿名对象是指没有名字的对象。实际上,对于对象实例化操作