Index: src/wp-admin/edit.php
===================================================================
--- src/wp-admin/edit.php	(revision 34894)
+++ src/wp-admin/edit.php	(working copy)
@@ -195,7 +195,7 @@
 		'<ul>' .
 			'<li>' . __('You can hide/display columns based on your needs and decide how many posts to list per screen using the Screen Options tab.') . '</li>' .
 			'<li>' . __('You can filter the list of posts by post status using the text links in the upper left to show All, Published, Draft, or Trashed posts. The default view is to show all posts.') . '</li>' .
-			'<li>' . __('You can view posts in a simple title list or with an excerpt. Choose the view you prefer by clicking on the icons at the top of the list on the right.') . '</li>' .
+			'<li>' . __('You can view posts in a simple title list or with an excerpt using the Screen Options tab.') . '</li>' .
 			'<li>' . __('You can refine the list to show only posts in a specific category or from a specific month by using the dropdown menus above the posts list. Click the Filter button after making your selection. You also can refine the list by clicking on the post author, category or tag in the posts list.') . '</li>' .
 		'</ul>'
 	) );
Index: src/wp-admin/includes/class-wp-posts-list-table.php
===================================================================
--- src/wp-admin/includes/class-wp-posts-list-table.php	(revision 34894)
+++ src/wp-admin/includes/class-wp-posts-list-table.php	(working copy)
@@ -498,9 +498,6 @@
 		global $mode;
 
 		parent::pagination( $which );
-
-		if ( 'top' === $which && ! is_post_type_hierarchical( $this->screen->post_type ) )
-			$this->view_switcher( $mode );
 	}
 
 	/**
Index: src/wp-admin/includes/class-wp-screen.php
===================================================================
--- src/wp-admin/includes/class-wp-screen.php	(revision 34894)
+++ src/wp-admin/includes/class-wp-screen.php	(working copy)
@@ -969,6 +969,7 @@
 	 */
 	public function render_screen_options( $options = array() ) {
 		global $wp_meta_boxes;
+		global $mode;
 		$options = wp_parse_args( $options, array(
 			'wrap' => true,
 		) );
@@ -1035,6 +1036,27 @@
 			</div>
 		<?php endif;
 
+		/**
+		 * Filter the post types that have different view mode options.
+		 *
+		 * @since 4.4.0
+		 *
+		 * @param array $view_mode_post_types Array of post types that can change view modes.
+		 */
+		$view_mode_post_types = apply_filters( 'view_mode_post_types', get_post_types( array( 'hierarchical' => false, 'show_ui' => true ) ) );
+		if ( in_array( $this->post_type, $view_mode_post_types ) ) { ?>
+		<div class="view-modes">
+			<h5><?php _e( 'View Mode' ); ?></h5>
+			<label for="list-view-mode">
+				<input id="list-view-mode" type="radio" name="mode" value="list" <?php checked( 'list', $mode ); ?> />
+				<?php _e( 'List View' ); ?>
+			</label>
+			<label for="excerpt-view-mode">
+				<input id="excerpt-view-mode" type="radio" name="mode" value="excerpt" <?php checked( 'excerpt', $mode ); ?> />
+				<?php _e( 'Excerpt View' ); ?>
+			</label>
+		</div>
+		<?php }
 		$this->render_screen_layout();
 		$this->render_per_page_options();
 		echo $this->_screen_settings;
@@ -1130,9 +1152,9 @@
 				<input type="number" step="1" min="1" max="999" class="screen-per-page" name="wp_screen_options[value]"
 					id="<?php echo esc_attr( $option ); ?>" maxlength="3"
 					value="<?php echo esc_attr( $per_page ); ?>" />
-			<?php endif;
+			<?php endif; ?>
 
-			echo get_submit_button( __( 'Apply' ), 'button', 'screen-options-apply', false ); ?>
+			<p><?php echo get_submit_button( __( 'Apply' ), 'button', 'screen-options-apply', false ); ?></p>
 			<input type="hidden" name="wp_screen_options[option]" value="<?php echo esc_attr( $option ); ?>" />
 		</div>
 		<?php
Index: src/wp-admin/includes/misc.php
===================================================================
--- src/wp-admin/includes/misc.php	(revision 34894)
+++ src/wp-admin/includes/misc.php	(working copy)
@@ -459,7 +459,13 @@
 		}
 
 		update_user_meta($user->ID, $option, $value);
-		wp_safe_redirect( remove_query_arg( array('pagenum', 'apage', 'paged'), wp_get_referer() ) );
+
+		$url = remove_query_arg( array( 'pagenum', 'apage', 'paged' ), wp_get_referer() );
+		if ( isset( $_POST['mode'] ) ) {
+			$url = add_query_arg( array( 'mode' => $_POST['mode'] ), $url );
+		}
+
+		wp_safe_redirect( $url );
 		exit;
 	}
 }
