@NonNull private DividerItemDecoration getDivider() { Drawable dividerBackground = ContextCompat.getDrawable(getActivity(), R.drawable.dark_blue_divider); Collection<Layer> layers = LayersBuilder.with( new Layer(DividerBuilder.from(dividerBackground).erase(Direction.getVertical()).build()), new Layer(new HeaderSelector(), DividerBuilder.fromEmpty().with(dividerBackground, Direction.SOUTH).build())).build(); return new DividerItemDecoration(layers); }
@NonNull private DividerItemDecoration getDivider() { Drawable dividerBackground = ContextCompat.getDrawable(getActivity(), R.drawable.dark_blue_divider); Collection<Layer> layers = LayersBuilder.with( new Layer(DividerBuilder.from(dividerBackground).erase(Direction.getVertical()).build()), new Layer(new HeaderSelector(), DividerBuilder.fromEmpty().with(dividerBackground, Direction.SOUTH).build())).build(); return new DividerItemDecoration(layers); }
/** * Returns the divider applied for the selected position taking into account * only the selectors for that position. * * @param position Position of the divider * @return Divider for the position, properly resolved */ private Divider getDivider(Position position) { Divider itemDivider = DividerBuilder.fromEmpty().build(); if (!position.isValid()) { return itemDivider; } int depth = 0; for (Layer layer : layers) { if (layer.isPositionSelected(position)) { itemDivider = itemDivider.override( layer.getDivider(), layer.getDirectionsByPosition(position), depth); } depth += 1; } return itemDivider; } }