Я фактически использую GridLayoutManager с двумя столбцами в моем приложении, и я хотел бы иметь один столбец в зависимости от используемого типа вида.
Вот код, который у меня есть в методе "onCreateView()" моего фрагмента:
// Recycler view for users
usersList = (RecyclerView) mView.findViewById(R.id.usersList);
// Layout manager (grid of users
layoutManager = new GridLayoutManager(mContext, 2);
usersList.setLayoutManager(layoutManager);
// ArrayList of users
users = new ArrayList<User>();
// Set the adapter for the list of users
mHomeListAdapter = new HomeListAdapter(getActivity(), users);
usersList.setAdapter(mHomeListAdapter);
Затем в моем адаптере у меня есть такой код:
@Override
public int getItemViewType(int position) {
if (position == 5) {
return TYPE_PREMIUM;
} else {
return TYPE_ITEM;
}
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == TYPE_PREMIUM) {
View view = mInflater.inflate(R.layout.become_premium, parent, false);
HeaderViewHolder holder = new HeaderViewHolder(view);
return holder;
} else {
View view = mInflater.inflate(R.layout.posts_item, parent, false);
ViewHolderPosts holder = new ViewHolderPosts(view);
return holder;
}
}
Итак, когда используется представление "TYPE_PREMIUM", я хотел бы отобразить кнопку (так в одном столбце) и иметь нормальный gridview (два столбца) для других результатов.
Можно ли это сделать?
Спасибо!