0

私は3つの項目しか持たないリストを持っています.2つの列を持つGridLayoutを使用しています。それを呼び出すと、rwoは2つの項目しかなく、最後は私のフッターです。私は何か、空の項目を追加したり、私のリストは、新しい行を移動するための奇数recycleviewの新しい行にフッターを作成する

enter image description here

@Override 
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) { 

    if (holder instanceof FooterViewHolder) { 
     loadChatMessages(); 
    } 
private boolean isPositionFooter(int position) { 
    return position == dish.size(); 
} 

@Override 
public int getItemViewType(int position) { 

    if (isPositionFooter(position)) { 
     return TYPE_FOOTER; 
    } 
    return TYPE_ITEM; 
} 

@Override 
public int getItemCount() { 
    return dish.size() + 1; 
} 

答えて

0

を持っているとき、私のフッターを動かすあなたが呼び出すことでGridLayoutManager.SpanSizeLookupの独自のバージョンを実装して、レイアウトマネージャに追加する必要がありますしたいですgridlayoutManager.setSpanSizeLookup(myLookup)

SpanSizeLookupの記述は、各項目が占めるスパンの数を提供する

ヘルパークラスを読み出します。

だから、すべての通常のアイテムのためにあなたは1(使用される列)を返したいとフッターの場合、あなたはgetSpanSize(int position)から2(または合計列の量を)返す必要が、あなたが設定しています。

これは、行全体が必要であることをレイアウトマネージャに通知します。

関連する問題