Dynamisches ändern der Anzahl der Spalten von a GridLayoutManager

Ich bin eigentlich mit GridLayoutManager mit zwei Spalten in mein app, und ich möchte eine Spalte je nach die Art der Ansicht verwendet.

Hier ist der code, ich habe in der Methode "onCreateView()" meiner fragment :

//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);

Dann, in meinem adapter, habe ich diese Art von code :

@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;
    }
}

So, wenn die Ansicht "TYPE_PREMIUM" verwendet wird, würde ich gerne eine Schaltfläche angezeigt (also in einer Spalte) und haben eine normale gridview (zwei Spalten) für die anderen Ergebnisse.

Ist es möglich, dies zu tun?

Dank!

InformationsquelleAutor fraxool | 2015-06-12
Schreibe einen Kommentar