<kim.uno.kotlin.base.ui.BaseRecyclerView
android:id="@+id/recycler_sample"
android:layout_width="match_parent"
android:layout_height="match_parent" />
public class SampleAdapter extends DragRecyclerAdapter {
public SampleAdapter() {
super();
}
@NotNull
@Override
public BaseViewHolder onCreateNewHolder(@NotNull ViewGroup parent, int type) {
return new SampleHolder(this, parent);
}
}
public class SampleHolder extends BaseViewHolder<Sample> implements BaseDragView {
TextView tvContent;
View vHandle;
public SampleHolder(@NotNull BaseRecyclerAdapter adapter, @NotNull ViewGroup parent) {
super(adapter, parent, R.layout.item_sample);
tvContent = (TextView) itemView.findViewById(R.id.tv_content);
vHandle = itemView.findViewById(R.id.v_handle);
}
@Override
public void onBindView(@Nullable Sample item, int position) {
super.onBindView(item, position);
tvContent.setText(item.message);
vHandle.setVisibility(item.isSwapable ? View.VISIBLE : View.GONE);
}
@Override
public void onDragStateChanged(boolean isSelected) {
itemView.setAlpha(isSelected ? 0.8f : 1f);
}
@Nullable
@Override
public View getHandleView() {
return vHandle;
}
@Override
public boolean isSwapable() {
Sample item = getItem();
return item != null && item.isSwapable;
}
}