final LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
RelistAdapter adapter = new RelistAdapter();
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setAdapter(adapter);
// recyclerView的滚动监听
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
// recyclerView的滚动状态
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
// Log.e("高==", ll_top.getHeight() + "");
记录控件的高
// height = ll_top.getHeight();
}
@Override
// recyclerView的滚动中执行
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
查找当前试图的位置
// View view = linearLayoutManager.findViewByPosition(currentPosition + 1);
// if (view == null) return;
view.getTop当前顶部的高,小于等于当前试图的高
// if (view.getTop() <= height) {
// Log.e("view.getTop()==", view.getTop() + "");
// ll_top.setY(-(height - view.getTop()));
// } else {
// ll_top.setY(0);
// }
// 如果当前视图不等于当前的位置
// linearLayoutManager.findFirstVisibleItemPosition()当前显示在顶部的试图的索引
Log.e("当前试图的位置==", linearLayoutManager.findFirstVisibleItemPosition() + "");
// 判断当前分组显示的组名称不是
if (currentPosition != linearLayoutManager.findFirstVisibleItemPosition()) {
currentPosition = linearLayoutManager.findFirstVisibleItemPosition();
// ll_top.setY(0);
tv_top.setText(" " + currentPosition);
}
}
});
}
private void initView() {
recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
tv_top = (TextView) findViewById(R.id.tv_top);
top_divider = (View) findViewById(R.id.top_divider);
ll_top = (LinearLayout) findViewById(R.id.ll_top);
}
// 一下为适配器
class RelistAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false);
return new ReHolder(view);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
}
@Override
public int getItemCount() {
return 10;
}
class ReHolder extends RecyclerView.ViewHolder {
public ReHolder(View itemView) {
super(itemView);
}
}