Display set of Views rows with different view modes I have a Drupal 8 View with a set of rows, which are each rendered as a compact list teaser. Additionally I need to display those rows inside the same view in a another view mode (e.g. "grid teaser" with an extra image). As a result the visitor should be able to switch between the different view modes by toggling the display.

The template views-view.html.twig should contain this:

&lt;!-- [...] --&gt;
&lt;!-- Display rows as list teaser --&gt;
&lt;div class="view-list row"&gt;
  {{ rows }}
&lt;/div&gt;
&lt;!-- Display rows as grid teaser --&gt;
&lt;div class="view-grid row"&gt;
  {{ rows_grid }}
&lt;/div&gt;
&lt;!-- [...] --&gt;


I don't really know how to render those additional rows. I thought about using the hook template_preprocess_views_view:

function template_preprocess_views_view(&amp;$variables) {

  // collect node ids
  $nids_rows = array();
  foreach ($variables['view']-&gt;result as $row){
    $nids_rows[] = $row-&gt;nid;
  }

  // load nodes
  $nodes_rows = Node::loadMultiple($nids_rows);

  if(!empty($nodes_rows)){
    // get views of nodes as grid
    $variables['rows_grid'][] = node_view_multiple($nodes_rows, 'grid');
  }
}


But the resulting render array is not in the same form like $variables['rows'] and I'm not able to loop through those rows_grid to wrap them with specific html (like in views-view-unformatted.html.twig).

Is there a function like view_load_rows($nids, $view_mode)? Or is there a way to alter the render array with some additional keys like '#theme' to get a real rows render array?

Maybe there is even an much simpler way to accomplish this. Any Ideas?
You can add another view display and put it below the main view output using block or view attachment.