Возможно ли добавить нижний колонтитул с украшением предметов, а не с помощью адаптера? Поскольку я работаю с очень сложным адаптером с уже множеством различных типов зрителей, я бы хотел добавить одинаковый нижний колонтитул в каждый список в моем приложении.RecyclerView: добавить нижний колонтитул с украшением предметов?
ответ
Насколько я могу судить, это самая лучшая практика.
Вот описание из класса RecyclerView.ItemDecoration:
/**
* An ItemDecoration allows the application to add a special drawing and layout offset
* to specific item views from the adapter's data set. This can be useful for drawing dividers
* between items, highlights, visual grouping boundaries and more.
Однако Вы можете установить определенное поведение при реализации собственного делителя на основе адаптера viewtype делителя должен иметь дело с. Вот пример кода, который я использовал в одном онлайн-курс:
public class Divider extends RecyclerView.ItemDecoration {
private Drawable mDivider;
private int mOrientation;
public Divider(Context context, int orientation) {
mDivider = ContextCompat.getDrawable(context, R.drawable.divider);
if (orientation != LinearLayoutManager.VERTICAL) {
throw new IllegalArgumentException("This Item Decoration can be used only with a RecyclerView that uses a LinearLayoutManager with vertical orientation");
}
mOrientation = orientation;
}
@Override
public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
if (mOrientation == LinearLayoutManager.VERTICAL) {
drawHorizontalDivider(c, parent, state);
}
}
private void drawHorizontalDivider(Canvas c, RecyclerView parent, RecyclerView.State state) {
int left, top, right, bottom;
left = parent.getPaddingLeft();
right = parent.getWidth() - parent.getPaddingRight();
int count = parent.getChildCount();
for (int i = 0; i < count; i++) {
//here we check the itemViewType we deal with, you can implement your own behaviour for Footer type.
// In this example i draw a drawable below every item that IS NOT Footer, as i defined Footer as a button in view
if (Adapter.FOOTER != parent.getAdapter().getItemViewType(i)) {
View current = parent.getChildAt(i);
RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) current.getLayoutParams();
top = current.getTop() - params.topMargin;
bottom = top + mDivider.getIntrinsicHeight();
mDivider.setBounds(left, top, right, bottom);
mDivider.draw(c);
}
}
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
if (mOrientation == LinearLayoutManager.VERTICAL) {
outRect.set(0, 0, 0, mDivider.getIntrinsicHeight());
}
}
Или вы можете использовать библиотеку под названием Flexible Divider, которая позволяет с помощью настраиваемого вытяжке или ресурс должен быть установлен.
Спасибо за ваш ответ Антон. Вы правы в том, что не являетесь лучшей практикой, поскольку декоратор предметов может иметь разную цель, поэтому, возможно, я могу вернуться к старым и более чистым адаптерам с разными типами представлений. – rqiu
- 1. asp: нижний колонтитул Gridview поверх предметов?
- 2. MonoTouch добавить нижний колонтитул
- 3. Нижний колонтитул нижний колонтитул
- 4. Добавить нижний колонтитул КоординаторуLayout
- 5. Как добавить простой заголовок/нижний колонтитул 8dp в Android RecyclerView?
- 6. Как добавить нижний колонтитул для этого адаптера RecyclerView
- 7. Нижний нижний нижний колонтитул
- 8. Нижний нижний колонтитул UITableView
- 9. Ящик Android с RecyclerView добавляет нижний колонтитул внизу
- 10. Добавить иконку в нижний колонтитул
- 11. Добавить нижний колонтитул в FPDI
- 12. RecyclerView с фиксированным столбцом и заголовком, плюс прокручиваемый нижний колонтитул
- 13. Материал Дизайн Навигация Переходник нижний колонтитул/заголовок (Как добавить нижний колонтитул?)
- 14. CSS Нижний нижний колонтитул после
- 15. размещен нижний нижний колонтитул с CSS
- 16. Нижний нижний колонтитул с заголовком и бутстрапом
- 17. Kendo grid добавить пользовательский нижний колонтитул
- 18. Добавить нижний колонтитул в существующую таблицу OpenXML
- 19. Как добавить нижний колонтитул в gridview
- 20. Добавить нижний колонтитул в тему WordPress?
- 21. Как разместить нижний нижний колонтитул?
- 22. Как добавить нижний колонтитул в страницу массажа?
- 23. Как добавить нижний колонтитул в ListView?
- 24. Добавить javascript и CSS в нижний колонтитул
- 25. Rotativa - Whtmltopdf: Добавить нижний колонтитул китайский текст?
- 26. Добавить верхний и нижний колонтитул Данные
- 27. UICollectionView - Добавить действие в нижний колонтитул
- 28. Невозможно добавить нижний колонтитул в ScrollView - android
- 29. Добавить собственный нижний колонтитул в webview
- 30. Добавить нижний колонтитул в GridView Android
Вы используете адаптер с listView или gridview? –
жаль, что вы не поняли, но, как указано в названии, я использую recyclerview – rqiu