Android实现双击TitleBar回顶部的功能示例代码
程序员文章站
2023-12-18 08:07:22
前言
本文介绍的内容是偶然发现的这个功能,就给移过来了,整理了一下,也是一个类就实现的,使用很方便
特别感谢@takwolf大大的开源项目,学了好多android方面的...
前言
本文介绍的内容是偶然发现的这个功能,就给移过来了,整理了一下,也是一个类就实现的,使用很方便
特别感谢@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毫秒
就是这么简单,一个好的封装,可以省多少事呀!
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
参考