package tk.zielony.carbonsamples.feature.scroll;
import android.content.Context;
import android.support.v7.widget.LinearLayoutManager;
import android.util.AttributeSet;
import java.util.Arrays;
import carbon.component.AvatarTextRow;
import carbon.component.DefaultAvatarTextItem;
import carbon.recycler.RowListAdapter;
import carbon.widget.RecyclerView;
import tk.zielony.randomdata.Generator;
import tk.zielony.randomdata.RandomData;
import tk.zielony.randomdata.person.DrawableAvatarGenerator;
import tk.zielony.randomdata.person.StringNameGenerator;
public class ScrollRecycler extends RecyclerView implements ScrollChild {
public ScrollRecycler(Context context, AttributeSet attrs) {
super(context, attrs);
DefaultAvatarTextItem[] items = new DefaultAvatarTextItem[5];
RandomData randomData = new RandomData();
randomData.addGenerators(new Generator[]{
new DrawableAvatarGenerator(context),
new StringNameGenerator().withMatcher(f -> f.getName().equals("text"))
});
randomData.fill(items);
setLayoutManager(new LinearLayoutManager(context));
RowListAdapter<DefaultAvatarTextItem> adapter = new RowListAdapter<>(DefaultAvatarTextItem.class, AvatarTextRow::new);
setAdapter(adapter);
adapter.setItems(Arrays.asList(items));
}
@Override
public int onNestedScrollByY(int y) {
scrollBy(0, y);
return y;
}
@Override
public int getNestedScrollRange() {
return computeVerticalScrollRange();
}
@Override
public int getNestedScrollY() {
return getScrollY();
}
}