super.onDrawOver(c, parent, state); // ΞΠςϜͷϏϡʔΑΓ্ʹඳը͞ΕΔ final RecyclerView.LayoutManager manager = parent.getLayoutManager(); final int left = parent.getPaddingLeft(); final int right = parent.getWidth() - parent.getPaddingRight(); final int childCount = parent.getChildCount(); for (int i = 1; i < childCount; i++) { final View child = parent.getChildAt(i); final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams(); if (params.getViewLayoutPosition() == 0) { continue; } // ViewCompat.getTranslationY()ΛೖΕͳ͍ͱ // ՃɾআͷΞχϝʔγϣϯ࣌ͷҐஔ͕มʹͳΔ final int top = manager.getDecoratedTop(child) - params.topMargin + Math.round(ViewCompat.getTranslationY(child)); final int bottom = top + dividerHeight; c.drawRect(left, top, right, bottom, paint); } } } DividerΛඳը
private final Object lock = new Object(); private final List<T> objects; public ArrayAdapter() { this(new ArrayList<T>()); } public ArrayAdapter(List<T> objects) { this.objects = objects; } public void add(@NonNull T object) { final int position; synchronized (lock) { position = objects.size(); objects.add(object); } notifyItemInserted(position); } ArrayAdapterతͳRecyclerView༻Adapter
… @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (holder instanceof ViewHolder) { final ViewHolder viewHolder = (ViewHolder) holder; final String text = data.get(position); viewHolder.textView.setText(text); } }