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
0
投稿

猜你喜欢

  • Android实现左右滑动切换图片

    2021-06-20 10:51:30
  • java并发编程工具类JUC之ArrayBlockingQueue

    2023-07-04 21:02:20
  • springboot手写一个自己的starter源码

    2021-07-31 10:18:14
  • idea install 时提示jdk的某个jar包的包不存在的问题

    2021-12-19 05:48:37
  • Android平台预置GMS包后关机闹钟失效问题及解决方法

    2022-12-31 05:52:33
  • 详解android 人脸检测你一定会遇到的坑

    2023-03-10 15:24:34
  • Android view自定义实现动态进度条

    2023-09-16 00:40:38
  • cmake跨平台构建工具的学习笔记

    2023-02-04 17:40:14
  • 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
  • Android Studio利用AChartEngine制作饼图的方法

    2021-12-28 10:53:30
  • Java png图片修改像素rgba值的操作

    2022-08-11 06:57:21
  • Java实现根据模板自动生成新的PPT

    2022-10-22 18:31:31
  • SpringBoot整合logback的示例代码

    2023-08-13 02:32:08
  • 如何利用Jenkins + TFS为.Net Core实现持续集成/部署详解

    2022-11-12 06:14:32
  • asp之家 软件编程 m.aspxhome.com