Использование setSpanSizeLookup с StaggeredGridLayoutmanager

Когда я пытаюсь использовать setSpanSizeLookup с GridLayoutManager, он работает без ошибок. Однако использование того же setSpanSizeLookup с StaggeredGridLayoutManager дает ошибку. Очевидно, это недопустимый класс. Есть ли способ использовать setSpanSizeLookup с StaggeredGridLayoutManager или вы могли бы предложить альтернативное решение для достижения того же результата?

Вот как я использовал setSpanSizeLookup с GridLayoutManager —

GridLayoutManager llm = new GridLayoutManager(getActivity(), 2);
         llm.setSpanSizeLookup(new SpanSizeLookup() {

            @Override
            public int getSpanSize(int position) {
                if(position == 0)
                {
                    return 2;
                }
                else
                {
                    return 1;
                }
        }
});

По сути, я хочу установить максимальный размер диапазона первого элемента, а последующие строки - наполовину. Любые идеи?


person Advait S    schedule 11.10.2015    source источник
comment
Ваш вопрос очень похож на мой, на него есть ответ, который помог мне и, вероятно, поможет вам, если вы все еще ищете ответ: stackoverflow.com/questions/33696096/   -  person Daniel Julio    schedule 16.11.2015


Ответы (1)


как это реализуется в адаптере:

@Override
public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) {
    super.onViewAttachedToWindow(holder);
    ViewGroup.LayoutParams lp = holder.itemView.getLayoutParams();
    if(lp != null
            && lp instanceof StaggeredGridLayoutManager.LayoutParams
            && holder.getLayoutPosition() == 0) {
        StaggeredGridLayoutManager.LayoutParams p = (StaggeredGridLayoutManager.LayoutParams) lp;
        p.setFullSpan(true);
    }
}
person Chuanxing Zhao    schedule 31.03.2017