Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Android横向滚动自动选中控件,用法和recyclerview完全一致。

Notifications You must be signed in to change notification settings

sichuanyl/AutoLocateHorizontalView

Repository files navigation

AutoLocateHorizontalView使用方法

一、特点

  1. 使用方式基本和Recyclerview一样,熟悉Recyclerview的开发者非常易于使用本控件。
  2. 支持数据的动态删除和添加,完全支持recyclerview的更新方法(局部更新方法可以使用,但最终是使用全局刷新实现的,所以局部刷新并不能在本控件中带来性能的提升)。
  3. 滑动停止后可以自动选中最近的位置。
  4. 支持手动控制选中任意item

二、使用方式

1. 基本使用

和Recyclerview一模一样,唯一不同的是在继承RecyclerView.Adapter时要实现 AutoLocateHorizontalView.IAutoLocateHorizontalView 接口。如下所示:

	public class BarAdapter extends RecyclerView.Adapter implements AutoLocateHorizontalView.IAutoLocateHorizontalView 

在该接口中我们要实现两个方法:

 @Override
 public View getItemView() {
 return itemView;
 }
 @Override
 public void onViewSelected(boolean isSelected, int pos, RecyclerView.ViewHolder holder,int itemWidth) {
 ViewHolder holder1 = (ViewHolder) holder;
 ViewGroup.LayoutParams params = holder1.bar.getLayoutParams();
 params.height = (int) (ages.get(pos)*1f / maxValue * maxHeight);
 params.width = itemWidth/3;
 holder1.bar.setLayoutParams(params);
 if(isSelected){
 holder1.bar.setBackgroundColor(Color.RED);
 }else{
 holder1.bar.setBackgroundColor(Color.BLUE);
 }
 }

其中getItemView()方法是用来获取列表中的每一个item的布局,可以在onCreateViewHolder()方法中获取如:

@Override
 public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
 View itemView = LayoutInflater.from(context).inflate(R.layout.item_bar,parent,false);
 this.itemView = itemView;
 ViewHolder holder = new ViewHolder(itemView);
 return holder;
 }

而 onViewSelected()方法中可以根据item是否被选中设置选中效果,比如选中时改变颜色,或者加粗等。

2. 常用方法
  • setInitPos(int pos) 设置最开始时选中的位置。
  • setItemCount(int itemCount) 设置每屏显示多少个item,item越多,则每个item的宽度相应的变小。
  • setOnSelectedPositionChangedListener(OnSelectedPositionChangedListener listener) 设置位置改变时的监听器,当滑动或增加、删除数据时,只要选中的位置发生了改变就会回调。注意,当增加和删除时,有可能选中的位置不变,但这个时候选中的数据不再是原来的数据也会回调。

三、参考效果

年龄选择 柱状图

About

Android横向滚动自动选中控件,用法和recyclerview完全一致。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%

AltStyle によって変換されたページ (->オリジナル) /