软件编程
位置:首页>> 软件编程>> Android编程>> Android实现双击TitleBar回顶部的功能示例代码

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

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com