Android实现双击TitleBar回顶部的功能示例代码
作者:Tomoya 时间:2022-10-21 10:50:15
前言
本文介绍的内容是偶然发现的这个功能,就给移过来了,整理了一下,也是一个类就实现的,使用很方便
特别感谢@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/
标签:android,双击回到顶部,titlebar
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Android实现左右滑动切换图片
2021-06-20 10:51:30
![](https://img.aspxhome.com/file/2023/8/109178_0s.gif)
java并发编程工具类JUC之ArrayBlockingQueue
2023-07-04 21:02:20
springboot手写一个自己的starter源码
2021-07-31 10:18:14
![](https://img.aspxhome.com/file/2023/1/62671_0s.png)
idea install 时提示jdk的某个jar包的包不存在的问题
2021-12-19 05:48:37
![](https://img.aspxhome.com/file/2023/1/97961_0s.png)
Android平台预置GMS包后关机闹钟失效问题及解决方法
2022-12-31 05:52:33
详解android 人脸检测你一定会遇到的坑
2023-03-10 15:24:34
![](https://img.aspxhome.com/file/2023/1/118951_0s.jpg)
Android view自定义实现动态进度条
2023-09-16 00:40:38
![](https://img.aspxhome.com/file/2023/5/138125_0s.gif)
cmake跨平台构建工具的学习笔记
2023-02-04 17:40:14
![](https://img.aspxhome.com/file/2023/3/129543_0s.png)
Java深入讲解Object类常用方法的使用
2022-11-22 00:16:51
Java面向对象程序设计多态性示例
2021-09-24 11:57:57
hadoop实现grep示例分享
2023-12-24 05:31:04
解决CollectionUtils.isNotEmpty()不存在的问题
2021-11-15 12:03:17
SpringCloud使用Zookeeper作为注册中心
2023-11-21 20:28:20
Java判断字符串是否是整数或者浮点数的方法
2022-04-30 10:06:20
Spring Cloud Zuul添加过滤器过程解析
2023-02-01 06:37:25
![](https://img.aspxhome.com/file/2023/3/115913_0s.jpg)
Android Studio利用AChartEngine制作饼图的方法
2021-12-28 10:53:30
![](https://img.aspxhome.com/file/2023/0/139460_0s.png)
Java png图片修改像素rgba值的操作
2022-08-11 06:57:21
Java实现根据模板自动生成新的PPT
2022-10-22 18:31:31
![](https://img.aspxhome.com/file/2023/7/65797_0s.jpg)
SpringBoot整合logback的示例代码
2023-08-13 02:32:08
如何利用Jenkins + TFS为.Net Core实现持续集成/部署详解
2022-11-12 06:14:32
![](https://img.aspxhome.com/file/2023/2/92962_0s.png)