Android---快速索引导航栏(侧滑字母)实践
来源:互联网 发布:informix数据库 使用 编辑:程序博客网 时间:2024/06/02 05:02
大神们的杰作总是吸引着我。
这是实现效果的链接
大神写过的我就不写了,然后,既然我们用到这个功能,那就需要和内容list联系起来,并且能实现点击item的效果。大神的代码里,提供的只是静态数据,所以还是需要改一改实体类和adapter。
接下来是快速上手的过程
1.将RightPositionActivity 、 MainActivity、 WaveSideBar的代码和一些图片attr中的数据整合到你的项目,然后在你的xml中写好RecyclerView和WaveSideBar。然后还需要导入jar包
2.创建实体类,获取你的list,然后改一下adapter,到这里你就实现图中的效果了,如果你需要item的点击事件,请往下看。
3.实现点击item效果需要修改adapter和mianactivity的代码就ok。
public class CarModelAdapter extends RecyclerView.Adapter<CarModelAdapter.ContactsViewHolder> { private List<CarModelBean> carList; private int layoutId; public CarModelAdapter(List<CarModelBean> list, int id) { // TODO Auto-generated constructor stub this.carList = list; this.layoutId = id; } //修改1 public interface OnItemClickLitener { void onItemClick(View view, int position); } //修改2 private OnItemClickLitener mOnItemClickLitener; public void setOnItemClickLitener(OnItemClickLitener mOnItemClickLitener) { this.mOnItemClickLitener = mOnItemClickLitener; } @Override public int getItemCount() { // TODO Auto-generated method stub return carList.size(); } @Override public void onBindViewHolder(final ContactsViewHolder holder, int position) { // TODO Auto-generated method stub CarModelBean car = carList.get(position); if (position == 0 || !carList.get(position - 1).getGroupName().equals(car.getGroupName())) { holder.tvIndex.setVisibility(View.VISIBLE); holder.tvIndex.setText(car.getGroupName()); } else { holder.tvIndex.setVisibility(View.GONE); } holder.tvName.setText(car.getName()); //修改3 if (mOnItemClickLitener != null) { holder.itemView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { int pos = holder.getLayoutPosition(); mOnItemClickLitener.onItemClick(holder.itemView, pos); } }); } } @Override public ContactsViewHolder onCreateViewHolder(ViewGroup parent, int arg1) { // TODO Auto-generated method stub LayoutInflater inflater = LayoutInflater.from(parent.getContext()); View view = inflater.inflate(layoutId, null); return new ContactsViewHolder(view); } class ContactsViewHolder extends RecyclerView.ViewHolder { public TextView tvIndex; public ImageView ivAvatar; public TextView tvName; public ContactsViewHolder(View itemView) { super(itemView); tvIndex = (TextView) itemView.findViewById(R.id.car_model_index); ivAvatar = (ImageView) itemView.findViewById(R.id.car_model_image); tvName = (TextView) itemView.findViewById(R.id.car_model_name); } }}
4.mianActivity中只要加入就ok了
carView.setLayoutManager(new LinearLayoutManager(this)); CarModelAdapter adapter = new CarModelAdapter(carList, R.layout.item_car_model); adapter.setOnItemClickLitener(new OnItemClickLitener() { @Override public void onItemClick(View view, int position) { // TODO Auto-generated method stub Log.i("00o00", position + ""); Log.i("00o00", carList.get(position).getName() + ""); } });
不讲原理,只讲过程
0 0
- Android---快速索引导航栏(侧滑字母)实践
- android自定义View----通讯录导航栏(快速查找索引)
- Android listview 侧栏字母索引排序
- android之ListView分组及字母索引导航(2)重构-接口
- android之ListView分组及字母索引导航
- android中实现更溜的字母导航索引
- Android 侧边字母导航栏的实现
- 【Android】自定义View快速建立字母索引列表
- android字母导航条实现(原创)
- android 字母导航条
- Android字母导航示例
- 快速集成android实现listview的字母A-Z排序,界面侧边字母索引
- 快速集成android实现listview的字母A-Z排序,界面侧边字母索引
- Android 之 Fast Scroll 、字母索引栏
- Android 带字母索引的侧边栏
- Android实现侧边栏按字母索引
- android 字母索引 listview
- Android字母索引列表
- Java语言程序设计基础(1)
- 我的奋斗?
- Tomcat环境变量配置
- 关于原生js获取的问题
- 用函数实现strncmp的功能
- Android---快速索引导航栏(侧滑字母)实践
- 哈夫曼树与编码(最优二叉树)
- 一列字符拆解成多行(续)
- Android 闹铃定时器实现
- XTU1254 Blance 如何实现称出1∼n 克的物品,请问最少需要几颗砝码?
- Excel里面删除单元格内的图片
- Python 对文件内容迭代 按字节处理
- ReferenceEquals 静态Equals equals == 的区别
- 深入浅出Mesos