I learned from here how to prevent restart on orientation change How to avoid restarting activity when orientation changes on Android
Thus I implemented it
In my Manifest I make sure rotate doesn't trigger restart
android:configChanges="keyboardHidden|orientation|screenSize"
My layout is very simple
<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="match_parent"
        android:layout_width="match_parent">
    <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/scroll">
        <android.support.v7.widget.RecyclerView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/list_of_items"/>
    </ScrollView>
    <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/add"
            android:layout_alignParentBottom="true"/>
</RelativeLayout>
In my MainActivity I set
@Override
public void onConfigurationChanged(Configuration newConfig)
{
    super.onConfigurationChanged(newConfig);
    setContentView(R.layout.activity_main);
}
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    RecyclerView itemsView = findViewById(R.id.list_of_items);
    itemsView.setLayoutManager(new LinearLayoutManager(this));
    itemsView.setNestedScrollingEnabled(false);
    ItemsAdapter items = new ItemsAdapter(this);
    itemsView.setAdapter(items);
}
Whenever rotate happens I checked inside onConfigurationChanged the item Count and visibility state, and log prints that the recycler view is visible and that it contains x items, yet somehow on rotate it never shows those items. What am I missing? My ItemsAdapter is a really simple adapter with nothing fancy inside.
 
    