Index: wp-admin/css/list-tables-rtl.css
===================================================================
--- wp-admin/css/list-tables-rtl.css	(revision 29062)
+++ wp-admin/css/list-tables-rtl.css	(working copy)
@@ -614,7 +614,7 @@
 }
 
 .view-switch {
-	float: left;
+	float: right;
 	margin: 5px 8px 0 16px;
 }
 
Index: wp-admin/css/list-tables.css
===================================================================
--- wp-admin/css/list-tables.css	(revision 29062)
+++ wp-admin/css/list-tables.css	(working copy)
@@ -614,7 +614,7 @@
 }
 
 .view-switch {
-	float: right;
+    float:left;
 	margin: 5px 16px 0 8px;
 }
 
Index: wp-admin/includes/class-wp-list-table.php
===================================================================
--- wp-admin/includes/class-wp-list-table.php	(revision 29062)
+++ wp-admin/includes/class-wp-list-table.php	(working copy)
@@ -896,6 +896,8 @@
 			wp_nonce_field( 'bulk-' . $this->_args['plural'] );
 ?>
 	<div class="tablenav <?php echo esc_attr( $which ); ?>">
+		<?php
+		$this->pre_bulk_actions( $which ); ?>
 
 		<div class="alignleft actions bulkactions">
 			<?php $this->bulk_actions(); ?>
@@ -1050,4 +1052,14 @@
 
 		printf( "<script type='text/javascript'>list_args = %s;</script>\n", json_encode( $args ) );
 	}
+
+	/**
+	 * Perform any actions or inject additional html before the bulk actions
+	 * @param string $which Top or bottom
+	 * @since 4.0
+	 * @access protected
+	 */
+	protected function pre_bulk_actions( $which ) {
+
+	}
 }
Index: wp-admin/includes/class-wp-media-list-table.php
===================================================================
--- wp-admin/includes/class-wp-media-list-table.php	(revision 29062)
+++ wp-admin/includes/class-wp-media-list-table.php	(working copy)
@@ -1,4 +1,5 @@
 <?php
+
 /**
  * Media Library List Table class.
  *
@@ -106,6 +107,17 @@
 <?php
 	}
 
+	/**
+	 * Inserting view switcher before the bulk actions
+	 * @param string $which Top or bottom
+	 * @since 4.0
+	 * @access protected
+	 */
+	protected function pre_bulk_actions( $which ) {
+		global $mode;
+		$this->view_switcher( $mode );
+	}
+
 	public function current_action() {
 		if ( isset( $_REQUEST['find_detached'] ) )
 			return 'find_detached';
@@ -127,14 +139,6 @@
 		_e( 'No media attachments found.' );
 	}
 
-	protected function pagination( $which ) {
-		global $mode;
-
-		parent::pagination( $which );
-
-		$this->view_switcher( $mode );
-	}
-
 	/**
 	 * Display a view switcher
 	 *
