1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/vigiles-HeaderRecycleView

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

github

Пример заголовка, который будет отображаться в шапке.

Адаптер RecyclerView

  www.gaohaiyan.com<br/>
  Пример адаптера RecyclerView, который использует header и recycleview.<br/>
  Этот пример показывает, как использовать header.<br/>
  TODO: Улучшить этот пример, добавив больше информации и примеров кода.<br/>
  <li>1. Создание базового контейнера VG и Ctx для item.</li>
  <li>2. Инициализация header.</li>
  <li>3. Обработка item через ViewHolder.</li>
  <li>4. Обработка item через ViewHolder.</li>
  <li>5. Обновление данных item.</li>
  <li>6. Установка headerView для управления header.</li>

Код Java:

public class HeaderRcyvAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

    public static final int TYPE_HEADER = 0;  // Тип элемента - header
    public static final int TYPE_NORMAL = 1;  // Тип элемента - обычный

    private List<NormalBean> mDatas;
    private View headerView;

    /**
     * TODO 1. Конструктор для RecycleView Adapter с передачей списка item.
     * @param list список элементов
     */
    public HeaderRcyvAdapter(Context ctx, List<NormalBean> list) {
        this.mDatas = list;
    }

    /**
     * Установка headerView для управления header.
     * @param bean данные для header
     */
    public void setHeaderView(ViewGroup parent, HeaderBean bean){
        if(null == headerView)
            headerView = LayoutInflater.from(parent.getContext()).inflate(R.layout.ghy_hrcyv_header, parent, false);

        ((TextView)headerView.findViewById(R.id.title)).setText(bean.title);
        ((TextView)headerView.findViewById(R.id.note)).setText(bean.note);

        notifyItemInserted(0);
    }

    /**
     * Определение типа view для каждого элемента.
     */
    @Override
    public int getItemViewType(int position) {
        if (headerView == null) {
            return TYPE_NORMAL;
        }
}
``````java
    // 1. Инициализация данных
    initData();

    // 2. Создание адаптера
    mHeaderRcyvAdapter = new HeaderRcyvAdapter(this, mNormalList);

    // 3. Установка макета и адаптера для RecyclerView
    mRecyclerView = (RecyclerView) findViewById(R.id.mRecyclerView);
    mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
    mRecyclerView.setAdapter(mHeaderRcyvAdapter);

    // 4. Установка header TODO Возможно, потребуется установить header вручную, так как он может отсутствовать
    mHeaderRcyvAdapter.setHeaderView(mRecyclerView, mHeaderBean);

    mSwipeRefresh = (SwipeRefreshLayout) findViewById(R.id.mSwipeRefresh);
    mSwipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh() {
            initData();

            mSwipeRefresh.setRefreshing(false);
            mHeaderRcyvAdapter.notifyDataSetChanged(); // Обновление всех элементов

            // 5. Обновление header TODO Возможно, потребуется установить header вручную, так как он может отсутствовать
            mHeaderRcyvAdapter.setHeaderView(mRecyclerView, mHeaderBean);
        }
    });
<br/>

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

С RecycleView возможен раскрывающийся список с header. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/vigiles-HeaderRecycleView.git
git@api.gitlife.ru:oschina-mirror/vigiles-HeaderRecycleView.git
oschina-mirror
vigiles-HeaderRecycleView
vigiles-HeaderRecycleView
master