RecyclerView,慢scrollToPosition,setSelected

时间:2016-09-08 16:25:46

标签: android listview android-recyclerview

提示,面对scrollToPosition速度。我的RecyclerView 900位置需要快速建立一个位置,因为scrollToPosition非常慢,c ListView这样的问题并没有完成setSelection的工作。可以加速scrollToPosition?

public class EventAdapter extends RecyclerView.Adapter<EventAdapter.Holder> {

final static public String TAG = "EventAdapter";

Context context;
List<Event> items;

public EventAdapter(List<Event> items) {
    this.items = items;
}

@Override
public EventAdapter.Holder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list_event, parent, false);
    context = parent.getContext();
    return new EventAdapter.Holder(v);
}

@Override
public void onBindViewHolder(EventAdapter.Holder holder, int position) {
    holder.setModel(context, items.get(position), position);
}

@Override
public int getItemCount() {
    return items.size();
}

public class Holder extends RecyclerView.ViewHolder {

    public View block;

    Holder(View view) {
        super(view);
            block = (View) view.findViewById(R.id.cv);
        }

        public void setModel(Context context, Event model, int position) {

        }
    }
}

LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
rv.setLayoutManager(linearLayoutManager);
rv.setHasFixedSize(true);

linearLayoutManager.scrollToPosition(index);

1 个答案:

答案 0 :(得分:0)

有几种方法可以做到:

1)尝试 smoothScrollToPosition :[肯定会有效]

Toast.makeText(this, "Scroll...", Toast.LENGTH_SHORT).show();
myList.smoothScrollToPosition(0);

2)另请阅读 scrollToPositionWithOffset ,因为这也有帮助