分组列表,tabs滑动固定框架-stickylistheaders
来源:互联网 发布:用户行为分析python 编辑:程序博客网 时间:2024/06/10 07:24
demo演示:
github地址:https://github.com/emilsjolander/StickyListHeaders
添加依赖:
compile 'se.emilsjolander:stickylistheaders:2.7.0'
布局:
<se.emilsjolander.stickylistheaders.StickyListHeadersListView android:id="@+id/shlv" android:layout_width="match_parent" android:layout_height="match_parent"></se.emilsjolander.stickylistheaders.StickyListHeadersListView>
代码:
-找到stickylistheaders控件
-添加适配器:
public class StickyListHeadersActivity extends Activity { @InjectView(R.id.shlv) StickyListHeadersListView shlv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sticky_header); ButterKnife.inject(this); MyStickyListHeadersAdapter adapter = new MyStickyListHeadersAdapter(); shlv.setAdapter((StickyListHeadersAdapter) adapter); } /** * 适配器 * 小技巧:直接实现StickyListHeadersAdapter需要实现很多方法 * 但是extends BaseAdapter implements StickyListHeadersAdapter就少些很多方法 */ class MyStickyListHeadersAdapter extends BaseAdapter implements StickyListHeadersAdapter { private long groupOne = 1;//第一组 private long groupTwo = 2;//第二组 //返回元素个数,标题不算是元素 @Override public int getCount() { return 40; } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } //listview布局 @Override public View getView(int position, View convertView, ViewGroup parent) { View view = null; ViewHolder holder = null; if (convertView == null) { view = View.inflate(parent.getContext(), R.layout.item_goods, null); holder = new ViewHolder(view); view.setTag(holder); } else { view = convertView; holder = (ViewHolder) view.getTag(); } holder.tvTitle.setText("商品" + position); return view; } //标题布局 @Override public View getHeaderView(int position, View convertView, ViewGroup parent) { return View.inflate(parent.getContext(), R.layout.item_outteradapter, null); } //返回的id有几个就产生几个分组,每个分组都会生成一个标题布局getHeaderView() @Override public long getHeaderId(int position) { //前15个元素为一组,后面的全部元素为一组 if (position <= 15) { return groupOne; } else { return groupTwo; } } class ViewHolder { @InjectView(R.id.tv_title) TextView tvTitle; ViewHolder(View view) { ButterKnife.inject(this, view); } } }}
1 0
- 分组列表,tabs滑动固定框架-stickylistheaders
- 仿StickyListHeaders 实现listview的header滑动效果(类似QQ好友列表)
- StickyListHeaders实现电话本列表效果
- StickyListHeaders
- 仿安卓4.0联系人滑动效果 StickyListHeaders
- 分组的listView滑动中固定组标题
- PinnedSectionListView:(固定部分的ListView)分组的listView滑动中固定组标题的实现
- 利用StickyListHeaders来实现ListView的分组实现
- Android Listview分组特效:滑动分组标题当前固定,并随内容滑动(andrroid原生电话本实现方法)
- PinnedSectionListView:分组的listView滑动中固定组标题的实现
- PinnedSectionListView:分组的listView滑动中固定组标题的实现
- Android开源框架分析系列-StickyListHeaders源码解析
- 分组列表
- IOS控件系列--滚动列表上下滑动时顶部视图固定与滑动效果(Swift版)
- TableView 固定滑动
- TabLayout滑动固定顶部
- 滑动导航栏固定
- 滑动的分组标题
- 求数组的连续子数组之和的最大值(一维二维)
- 人口模型回归
- 生命之树
- ploymer (一) 第一个demo
- Effective C++
- 分组列表,tabs滑动固定框架-stickylistheaders
- python numpy多维数组切片问题
- Mysql数据库引擎
- cogs 727. [网络流24题] 太空飞行计划
- 多租户过程记录四(修改代码中)
- Machine Learning with Scikit-Learn and Tensorflow 6.6 基尼不纯度/熵
- golang 类似set使用
- sublime text 快捷操作
- 数据倾斜是多么痛?spark作业调优秘籍