I have the following recycler view with Staggered Grid Layout Manager:
I would like to adapt each item of the staggered grid view like this (the last element full-screen if its stand alone) :
Main.java:
staggeredGridLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
superEffectiveRecyclerView.setLayoutManager(staggeredGridLayoutManager);
effectivenessSuperEffectiveAdapter = new EffectivenessRecyclerAdapter(this, effectivenessesSuperEffective);
superEffectiveRecyclerView.setItemAnimator(new DefaultItemAnimator());
superEffectiveRecyclerView.setAdapter(effectivenessSuperEffectiveAdapter);
list_item_type.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:id="@+id/effectiveness_effect"
android:layout_width="33dp"
android:layout_height="25dp"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp"
android:gravity="center"
android:text="@string/placeholder"
android:textColor="#f000"
android:textSize="14sp" />
<TextView
android:id="@+id/effectiveness_name"
android:layout_width="81dp"
android:layout_height="25dp"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp"
android:gravity="center"
android:text="@string/placeholder"
android:textColor="#f000"
android:textSize="14sp" />
</LinearLayout>
content_main.xml:
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/super_efective_recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical" />
How Can I achieve this ?
EDIT : apparently , setting :
StaggeredGridLayoutManager.LayoutParams layoutParams = (StaggeredGridLayoutManager.LayoutParams) holder.itemView.getLayoutParams();
if(Objects.nonNull(layoutParams)){
if (getItemCount() % 3 == 1 && position == getItemCount() - 1) {
layoutParams.setFullSpan(true);
}
}
In view holder results in this :
However , this is not exactly what I want , I only want the last element fullscreen
You can try this
Reference Setting span size of single row in StaggeredGridLayoutManager
EDIT
You can also try gridlayout if you want set this when you set layoutManager to your recyclerview and size = size of your list which you pass in your adapter