Używam GridLayoutManager z dwiema kolumnami w mojej aplikacji i chciałbym mieć jedną kolumnę w zależności od używanego typu widoku.Dynamiczna zmiana liczby kolumn GridLayoutManager
Oto kod mam w metodzie "onCreateView()" mojego fragmentu:
// 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);
Następnie w moim adapterze, mam tego rodzaju kodu:
@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;
}
}
Tak , gdy używany jest widok "TYPE_PREMIUM", chciałbym wyświetlić przycisk (czyli w jednej kolumnie) i mieć normalny widok siatki (dwie kolumny) dla pozostałych wyników.
Czy można to zrobić?
Dzięki!
Idealne, właśnie to, czego potrzebowałem, dzięki! – fraxool