说在前面
很多APP都有热门排行热门搜索什么的,这个时候可能需要用到标签,也就是流式布局,而还有可能用到的就是搜索历史记录,这种一般都是使用listview展示。但是,相当有可能是反过来的UI展示效果,热门排行用listview,历史记录使用流式标签。所以这里给出相结合的Demo实例以及说明。
上代码!FlowLayout-SearchHistory
FlowLayout流式标签
使用了继承至ViewGroup的自定义控件,数据载入方式为String数组。此自定义控件可以直接使用。
private void initData() {
for (int i = 0; i < datas.length; i++) {
TextView tv = (TextView) mInflater.inflate(
R.layout.search_label_tv, mFlowLayout, false);
tv.setText(datas[i]);
final String str = tv.getText().toString();
//点击事件
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//加入搜索历史纪录记录
Toast.makeText(MainActivity.this, str, Toast.LENGTH_LONG).show();
}
});
mFlowLayout.addView(tv);
}
}
标签的展示样式可以通过Demo里面的search_label_tv布局去自定义修改,这里的逻辑并不麻烦,详细代码查看demo代码。
插播一个效果图:
SearchHistory搜索历史
使用SharedPreferences记录搜索历史。
主要的方法如下:
public void initSearchHistory() {}//初始化
public void save() {}//储存
public void cleanHistory() {}//清除
Demo里面为了代码逻辑的清晰,将历史记录的控件都与流式标签分离了,通常是放在一起的。另外,SharedPreferences也可以单独封装方法提供直接调用,只要能储存,怎么利索怎么写。
好像就这么点东西,没啥可以写的。。。
最后
Demo里面的代码量本身也不大,主要是供新手朋友们参考,也算是自己记录一下这些可以单独抽离出来的小东西。
上代码!FlowLayout-SearchHistory
【UI篇】扩展阅读
《Android APP可能有的东西》之UI篇:加入购物车动画
《Android APP可能有的东西》之UI篇:日夜间模式切换
《Android APP可能有的东西》之UI篇:展开TextView全文
本文作者:paradoxie
个人主页:谢盒盒的小黑屋,不止说技术
简书地址:简书主页,专注说技术
github地址:paradoxie
转载请注明出处,蟹蟹!
-------我的梦想真的是做一条咸鱼!