2016-06-29 18 views
0

私はRecyclerviewを使用して、アンドロイドアプリケーションのアイテムのリストを表示しています。ユーザーがリストとグリッドを切り替えるオプションを提供しています。それはうまくいきますが、グリッドのレイアウトは問題ありませんが、リストのためにはうまくいきません。アンドロイドでレイアウトタイプを見つける方法Recyclerview

ユーザーがリストに切り替えたときに別のレイアウトを使用したいと思います。私がRecyclerviewからそれを達成する方法を教えてください。

FYI: - 私はあなたがあなたのアダプタにフラグを追加して、あなたのLayoutDataManagerを変更したときに表示を更新するには、アダプタを通知することができ

答えて

1

グリッドとリストを切り替えることがmRecyclerView.setLayoutManager(mLayoutManager);を使用しています。

private static final int TYPE_LINEAR = 0; 
private static final int TYPE_GRID = 1; 

private int type; 

public void setType(int type) { 
    this.type = type; 
    notifyDataSetChanged(); 
} 

@Override 
public int getItemViewType(int position) { 
    return type; 
} 

@Override 
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    switch (viewType) { 
     case TYPE_LINEAR: 
      return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_linear), null); 
     case TYPE_GRID: 
      return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_grid), null); 
    } 
    return null; 
} 

は、それが助けを:)

+0

感謝をお役に立てば幸いです。アクティビティでタイプを設定する方法を教えてください – Krishna

+0

上記のコードをアダプタに追加し、 'adapter.setType(TYPE_YOU_WANT);を' mRecyclerView.setLayoutManager(mLayoutManager);と一緒に呼び出してください –

+0

アダプタで型を取得できません:( – Krishna

関連する問題