How to display a custom render element after an existing one? So I've implemented hook_ENTITY_TYPE_view hook.

In there I add a view mode to the $build array:

$build['sessions'] = array(
  [
    "#markup" =&gt; "&lt;h2&gt;Sessies&lt;/h2&gt;",
    "content" =&gt; array(
      Drupal::entityManager()-&gt;getViewBuilder('node')-&gt;viewMultiple($nodes, 'speaker_sessions')
    )
  ]
);


What happends now is that this will allways be rendered before all the other content. How can I manipulate this? Adding #weight to this element does not seems to effect the other content.
Are you sure that code is correct?

$build['sessions'] = array(
  [
    "#markup" =&gt; "&lt;h2&gt;Sessies&lt;/h2&gt;",
    "content" =&gt; array(
      Drupal::entityManager()-&gt;getViewBuilder('node')-&gt;viewMultiple($nodes, 'speaker_sessions')
    )
  ]
);


It appears you are creating 2 arrays (array() and []). The given example hook_ENTITY_TYPE_view() looks like this: 

$build['mymodule_addition'] = array(
  '#markup' =&gt; mymodule_addition($entity),
  '#theme' =&gt; 'mymodule_my_additional_field',
);


The problem you are likely having is because of the nested array. If you apply a weight to the inner array, it will sink to the bottom of the outer array. You however still have no control over the position of the outer array. So either use a single array and add the weight there, or use the double array as it is, but apply the weight to the outer array.

But that conflicts a bit with your question because this is not a view mode, it is just an extra render element.