diff options
Diffstat (limited to 'docs/html/design/building-blocks')
-rw-r--r-- | docs/html/design/building-blocks/buttons.jd | 40 | ||||
-rw-r--r-- | docs/html/design/building-blocks/dialogs.jd | 112 | ||||
-rw-r--r-- | docs/html/design/building-blocks/grid-lists.jd | 79 | ||||
-rw-r--r-- | docs/html/design/building-blocks/index.jd | 29 | ||||
-rw-r--r-- | docs/html/design/building-blocks/lists.jd | 31 | ||||
-rw-r--r-- | docs/html/design/building-blocks/pickers.jd | 32 | ||||
-rw-r--r-- | docs/html/design/building-blocks/progress.jd | 80 | ||||
-rw-r--r-- | docs/html/design/building-blocks/scrolling.jd | 37 | ||||
-rw-r--r-- | docs/html/design/building-blocks/seek-bars.jd | 36 | ||||
-rw-r--r-- | docs/html/design/building-blocks/spinners.jd | 37 | ||||
-rw-r--r-- | docs/html/design/building-blocks/switches.jd | 31 | ||||
-rw-r--r-- | docs/html/design/building-blocks/tabs.jd | 59 | ||||
-rw-r--r-- | docs/html/design/building-blocks/text-fields.jd | 70 |
13 files changed, 673 insertions, 0 deletions
diff --git a/docs/html/design/building-blocks/buttons.jd b/docs/html/design/building-blocks/buttons.jd new file mode 100644 index 0000000..18beab0 --- /dev/null +++ b/docs/html/design/building-blocks/buttons.jd @@ -0,0 +1,40 @@ +page.title=Buttons +@jd:body + +<p>A button consists of text and/or an image that clearly communicates what action will occur when the +user touches it. Android supports two different types of buttons: <em>basic buttons</em> and <em>borderless +buttons</em>. Both can contain text labels and/or images.</p> + +<div style="text-align: center"> + <img src="{@docRoot}design/media/buttons_basic.png"> +</div> + +<h2 id="basic">Basic Buttons</h2> + +<p>Basic buttons are traditional buttons with borders and background. Android supports two styles for +basic buttons: default and small. Default buttons have slightly larger font size and are optimized +for display outside of form content. Small buttons are intended for display alongside other content. +They have a smaller font and smaller minimum height. Use small buttons in forms where they need to +align with other UI elements.</p> + +<img src="{@docRoot}design/media/buttons_default_small.png"> +<div class="layout-content-row"> + <div class="layout-content-col span-6"> + <div class="figure-caption"> + Default buttons in Holo Dark & Light. + </div> + </div> + <div class="layout-content-col span-6"> + <div class="figure-caption"> + Small buttons in Holo Dark & Light. + </div> + </div> +</div> + +<h2 id="borderless">Borderless Buttons</h2> + +<p>Borderless buttons resemble basic buttons except that they have no borders or background. You can +use borderless buttons with both icons and text. Borderless buttons are visually more lightweight +than basic buttons and integrate nicely with other content.</p> + +<img src="{@docRoot}design/media/buttons_borderless.png"> diff --git a/docs/html/design/building-blocks/dialogs.jd b/docs/html/design/building-blocks/dialogs.jd new file mode 100644 index 0000000..9b653ee --- /dev/null +++ b/docs/html/design/building-blocks/dialogs.jd @@ -0,0 +1,112 @@ +page.title=Dialogs +@jd:body + +<p>Dialogs prompt the user for decisions or additional information required by the app to continue a +task. Such requests can range from simple Cancel/OK decisions to more complex layouts asking the +user to adjust settings or enter text.</p> + +<img src="{@docRoot}design/media/dialogs_main.png"> + +<div class="with-callouts"> + +<ol> +<li> +<h4>Optional title region</h4> +<p>The title introduces the content of your dialog. It can, for example, identify the name of a + setting that the user is about to change, or request a decision.</p> +</li> +<li> +<h4>Content area</h4> +<p>Dialog content varies widely. For settings dialogs, a dialog may contain UI elements such as + sliders, text fields, checkboxes, or radio buttons that allow the user to change app or system + settings. In other cases, such as alerts, the content may consist solely of text that provides + further context for a user decision.</p> +</li> +<li> +<h4>Action buttons</h4> +<p>Action buttons are typically Cancel and/or OK, with OK indicating the preferred or most likely + action. However, if the options consist of specific actions such as Close or Wait rather than + a confirmation or cancellation of the action described in the content, then all the buttons + should be active verbs. As a rule, the dismissive action of a dialog is always on the left + whereas the affirmative actions are on the right.</p> +</li> +</ol> + +</div> + +<img src="{@docRoot}design/media/dialogs_examples.png"> +<div class="figure-caption"> + Samples of typical dialog use in Android. +</div> + +<h2 id="alerts">Alerts</h2> + +<p>Alerts inform the user about a situation that requires their confirmation or acknowledgement before +proceeding. They differ slightly in appearance based upon the severity and impact of the message +conveyed.</p> + +<div class="layout-content-row"> + <div class="layout-content-col span-8"> + + <img src="{@docRoot}design/media/dialogs_w_no_title.png"> + + </div> + <div class="layout-content-col span-5"> + +<h4>Alerts without title bars</h4> +<p>Most alerts don't need titles. Usually the decision doesn't have a severe impact and can be summed +up succinctly in a sentence or two. The content area should either ask a question (such as "Delete +this conversation?") or make a clear statement whose relationship to the action buttons is obvious.</p> + + </div> +</div> + + +<div class="layout-content-row"> + <div class="layout-content-col span-8"> + + <img src="{@docRoot}design/media/dialogs_w_title.png"> + + </div> + <div class="layout-content-col span-5"> + +<h4>Alerts with title bars</h4> +<p>Use alerts with title bars sparingly. They are appropriate only when a high-risk operation involving +potential loss of data, connectivity, extra charges, and so on requires a clear question or +statement (the title) and some additional explanation (in the content area).</p> +<p>Keep the question or statement short: for example, "Erase USB storage?" Avoid apologies. A user +should be able to skip the content completely and still have a clear idea of what choices are +available based on the title and the text of the action buttons.</p> + + </div> +</div> + + +<h2 id="popups">Popups</h2> + +<p>Popups are lightweight version of dialogs that require a single selection from the user. Popups +don't have have explicit buttons that accept or cancel the operation. Instead, making a selection +advances the workflow, and simply touching outside the popup dismisses it.</p> + +<img src="{@docRoot}design/media/dialogs_popups_example.png"> + + +<h2 id="toasts">Toasts</h2> + + +<div class="layout-content-row"> + <div class="layout-content-col span-6"> + + <div class="vspace size-6"></div> + +<p>Toasts provide lightweight feedback about an operation in a small popup. For example, navigating +away from an email before you send it triggers a "Draft saved" toast to let you know that you can +continue editing later. Toasts automatically disappear after a timeout.</p> + + </div> + <div class="layout-content-col span-7"> + + <img src="{@docRoot}design/media/dialogs_toasts.png"> + + </div> +</div> diff --git a/docs/html/design/building-blocks/grid-lists.jd b/docs/html/design/building-blocks/grid-lists.jd new file mode 100644 index 0000000..775ebcc --- /dev/null +++ b/docs/html/design/building-blocks/grid-lists.jd @@ -0,0 +1,79 @@ +page.title=Grid Lists +@jd:body + +<img src="{@docRoot}design/media/gridview_overview.png"> + +<p>Grid lists are an alternative to standard list views. They are best suited for showing data sets +that represent themselves through images. In contrast to simple lists, grid lists may scroll either +vertically or horizontally.</p> + + + +<h2 id="generic_grid">Generic Grids</h2> + + +<p>The items in a grid list are arranged in two dimensions, one of which is fixed when scrolling +content. The scrolling direction dictates the ordering of the items within the grid list. Since the +scrolling direction is not deterministic, make it easy for the user to determine the orientation by +cutting off grid items to communicate where the overflow is located.</p> +<p>Avoid creating grid lists that scroll in two dimensions.</p> + + +<div class="layout-content-row"> + <div class="layout-content-col span-7"> + + <img src="{@docRoot}design/media/gridview_vertical.png"> + + </div> + <div class="layout-content-col span-6"> + +<h4>Vertical scrolling</h4> +<p>Vertically scrolling grid list items are sorted in traditional western reading direction: +left-to-right and top-down. When displaying the list, cut off the items in the bottom row to +communicate that the user can scroll the list down to show additional items. Be sure to retain this +scheme when the user rotates the screen.</p> + + </div> +</div> + +<div class="layout-content-row"> + <div class="layout-content-col span-7"> + + <img src="{@docRoot}design/media/gridview_horizontal.png"> + + </div> + <div class="layout-content-col span-6"> + +<h4>Horizontal scrolling</h4> +<p>Horizontally scrolling lists fix the vertical axis of the item grid. Compared to vertically +scrolling lists, the sorting changes slightly to a top-down and left-to-right arrangement. Employ +the same technique of cutting off the items in the rightmost column to indicate the scrolling +direction.</p> +<p>Don't use scrolling tabs as a means to switch views in conjunction with horizontally scrolling grid +lists, because the horizontal gesture for view and content navigation will conflict. If you show +scrolling tabs for view navigation together with a grid list, use vertical grid scrolling for list +navigation.</p> + + </div> +</div> + + +<h2 id="with-labels">Grid List with Labels</h2> + +<p>Use labels to display additional contextual information for your grid list items.</p> + + +<div class="layout-content-row"> + <div class="layout-content-col span-7"> + + <img src="{@docRoot}design/media/gridview_style.png"> + + </div> + <div class="layout-content-col span-6"> + +<h4>Style</h4> +<p>Use semi-transparent panels on top of the grid list items to display your labels. This allows you to +control the contrast and ensures legibility of the labels while letting the content "shine through".</p> + + </div> +</div> diff --git a/docs/html/design/building-blocks/index.jd b/docs/html/design/building-blocks/index.jd new file mode 100644 index 0000000..52b4915 --- /dev/null +++ b/docs/html/design/building-blocks/index.jd @@ -0,0 +1,29 @@ +page.title=Building Blocks +header.justLinks=1 +footer.hide=1 +@jd:body + +<style> +#landing-graphic-container { + position: relative; +} + +#text-overlay { + position: absolute; + left: 10px; + top: 472px; + width: 450px; +} +</style> + +<div id="landing-graphic-container"> + <div id="text-overlay"> + Your inventory of ready-to-use elements for creating outstanding apps. + <br><br> + <a href="{@docRoot}design/building-blocks/tabs.html" class="landing-page-link">Tabs</a> + </div> + + <a href="{@docRoot}design/building-blocks/tabs.html"> + <img src="{@docRoot}design/media/building_blocks_landing.png"> + </a> +</div> diff --git a/docs/html/design/building-blocks/lists.jd b/docs/html/design/building-blocks/lists.jd new file mode 100644 index 0000000..aaa86b8 --- /dev/null +++ b/docs/html/design/building-blocks/lists.jd @@ -0,0 +1,31 @@ +page.title=Lists +@jd:body + +<p>Lists present multiple line items in a vertical arrangement. They can be used for data selection as +well as drilldown navigation.</p> + +<div class="vspace size-1"> </div> + +<div class="layout-content-row clearfix"> + <div class="layout-content-col span-9"> + + <img src="{@docRoot}design/media/lists_main.png"> + + </div> + <div class="layout-content-col span-4 with-callouts"> + +<ol> +<li> +<h4>Section Divider</h4> +<p>Use section dividers to organize the content of your list into groups and facilitate scanning.</p> +</li> +<li> +<h4>Line Items</h4> +<p>List items can accommodate a wide range of data types in different arrangements, including + simple single-line items, multi-line items, and custom items with icons, checkboxes, and action + buttons.</p> +</li> +</ol> + + </div> +</div> diff --git a/docs/html/design/building-blocks/pickers.jd b/docs/html/design/building-blocks/pickers.jd new file mode 100644 index 0000000..85f2187 --- /dev/null +++ b/docs/html/design/building-blocks/pickers.jd @@ -0,0 +1,32 @@ +page.title=Pickers +@jd:body + +<p>Pickers provide a simple way to select a single value from a set. In addition to touching the +up/down arrow buttons, it's possible to set the desired value from the keyboard or via a swipe +gesture.</p> + +<div class="layout-content-row"> + <div class="layout-content-col span-2"> </div> + <div class="layout-content-col span-6"> + + <img src="{@docRoot}design/media/picker_space.png"> + + </div> + <div class="layout-content-col span-5"> + +<h4>Space considerations</h4> +<p>Pickers can be used inline on a form, but their relatively large footprint is best suited for +display in a dialog. For inline display, consider using more compact controls such as text fields or +spinners.</p> + + </div> +</div> + +<h2 id="date-time">Date and time pickers</h2> + +<p>Android provides these as ready-to-use dialogs. Each picker is a dialog with a set of controls for +entering the parts of the date (month, day, year) or time (hour, minute, AM/PM). Using these in your +app helps ensure that a user's specification of a data or time input is valid and formatted +correctly. The format of a time and date picker adjusts automatically to the locale.</p> + +<img src="{@docRoot}design/media/picker_datetime.png"> diff --git a/docs/html/design/building-blocks/progress.jd b/docs/html/design/building-blocks/progress.jd new file mode 100644 index 0000000..b188538 --- /dev/null +++ b/docs/html/design/building-blocks/progress.jd @@ -0,0 +1,80 @@ +page.title=Progress and Activity +header.title=Feedback +@jd:body + +<p>When an operation of interest to the user is taking place over a relatively long period of time, +provide visual feedback that it's still happening and in the process of being completed.</p> +<h2 id="progress">Progress</h2> + +<p>If you know the percentage of the operation that has been completed, use a determinate progress bar +to give the user a sense of how much longer it will take.</p> + +<img src="{@docRoot}design/media/progress_download.png"> + +<p>The progress bar should always travel from 0% to 100% completion. Avoid setting the bar to a lower +value than a previous value, or using the same progress bar to represent the progress of multiple +events, since doing so makes the display meaningless. If you're not sure how long a particular +operation will take, use an indeterminate progress indicator.</p> + +<div class="vspace size-2"> </div> + +<img src="{@docRoot}design/media/progress_themes.png"> +<div class="figure-caption"> + Progress bar in Holo Dark and Holo Light. +</div> + +<h2 id="activity">Activity</h2> + +<p>If you don't know how much longer an operation will continue, use an indeterminate progress +indicator. There are two styles available: a flat bar and a circle. Use the one that best fits the +available space.</p> + + +<div class="layout-content-row"> + <div class="layout-content-col span-6"> + + <img src="{@docRoot}design/media/progress_activity.png"> + + </div> + <div class="layout-content-col span-7 with-callouts"> + + <ol> + <li class="value-1"><h4>Activity bar (shown with the Holo Dark theme)</h4> + <p> + +An indeterminate activity bar is used at the start of an application download because the Play Store +app hasn't been able to contact the server yet, and it's not possible to determine how long it will +take for the download to begin. + + </p> + </li> + </ol> + + </div> +</div> + +<div class="layout-content-row"> + <div class="layout-content-col span-6"> + + <img src="{@docRoot}design/media/progress_activity2.png"> + + </div> + <div class="layout-content-col span-7 with-callouts"> + + <ol> + <li class="value-2"><h4>Activity circle (shown with the Holo Light theme)</h4> + <p> + +An indeterminate activity circle is used in the Gmail application when a message is being +loaded because it's not possible to determine how long it will take to download the email. + + </p> + </li> + </ol> + + </div> +</div> + +<p>You should only use one activity indicator on screen per activity, and it should appropriately sized +for the surrounding context. For example, the largest activity circle works well when displayed in a +blank content area, but not in a smaller dialog box.</p> diff --git a/docs/html/design/building-blocks/scrolling.jd b/docs/html/design/building-blocks/scrolling.jd new file mode 100644 index 0000000..7695157 --- /dev/null +++ b/docs/html/design/building-blocks/scrolling.jd @@ -0,0 +1,37 @@ +page.title=Scrolling +@jd:body + +<p>Scrolling allows the user to navigate to content in the overflow using a swipe gesture. The +scrolling speed is proportional to the speed of the gesture.</p> +<h2 id="indicator">Scroll Indicator</h2> + +<p>Appears during scrolling to indicate what portion of the content is currently in view.</p> + +<div class="framed-galaxynexus-land-span-13"> + <video class="play-on-hover" autoplay> + <source src="{@docRoot}design/media/scroll_indicator.mp4" type="video/mp4"> + <source src="{@docRoot}design/media/scroll_indicator.webm" type="video/webm"> + <source src="{@docRoot}design/media/scroll_indicator.ogv" type="video/ogg"> + </video> +</div> +<div class="figure-caption"> + <div class="video-instructions"> </div> +</div> + +<h2 id="index-scrolling">Index Scrolling</h2> + +<p>In addition to traditional scrolling, a long alphabetical list can also offer index scrolling: a way +to quickly navigate to the items that begin with a particular letter. With index scrolling, a scroll +indicator appears even when the user isn't scrolling. Touching or dragging it causes the current +letter to pop up in a prominent way.</p> + +<div class="framed-galaxynexus-land-span-13"> + <video class="play-on-hover" autoplay> + <source src="{@docRoot}design/media/scroll_index.mp4" type="video/mp4"> + <source src="{@docRoot}design/media/scroll_index.webm" type="video/webm"> + <source src="{@docRoot}design/media/scroll_index.ogv" type="video/ogg"> + </video> +</div> +<div class="figure-caption"> + <div class="video-instructions"> </div> +</div> diff --git a/docs/html/design/building-blocks/seek-bars.jd b/docs/html/design/building-blocks/seek-bars.jd new file mode 100644 index 0000000..3407ddd --- /dev/null +++ b/docs/html/design/building-blocks/seek-bars.jd @@ -0,0 +1,36 @@ +page.title=Seek Bars and Sliders +@jd:body + +<p>Interactive sliders make it possible to select a value from a continuous or discrete range of values +by moving the slider thumb. The smallest value is to the left, the largest to the right. The +interactive nature of the slider makes it a great choice for settings that reflect intensity levels, +such as volume, brightness, or color saturation.</p> + +<div class="layout-content-row"> + <div class="layout-content-col span-9"> + + <img src="{@docRoot}design/media/seekbar_example.png"> + + </div> + <div class="layout-content-col span-4"> + +<div class="vspace size-2"> </div> + +<h4>Example</h4> +<p>Interactive slider to set the ringer volume. The value can either be set through the hardware volume controls or interactively via a gesture.</p> + + </div> +</div> + + +<div class="layout-content-row"> + <div class="layout-content-col span-9"> + + <img src="{@docRoot}design/media/seekbar_style.png"> + <div class="figure-caption"> + Seek bars in Holo Light & Dark + </div> + + </div> + <div class="layout-content-col span-4"> </div> +</div> diff --git a/docs/html/design/building-blocks/spinners.jd b/docs/html/design/building-blocks/spinners.jd new file mode 100644 index 0000000..621a57c --- /dev/null +++ b/docs/html/design/building-blocks/spinners.jd @@ -0,0 +1,37 @@ +page.title=Spinners +@jd:body + +<p>Spinners provide a quick way to select one value from a set. In the default state, a spinner shows +its currently selected value. Touching the spinner displays a dropdown menu with all other available +values, from which the user can select a new one.</p> + + +<div class="layout-content-row"> + <div class="layout-content-col span-6"> + + <img src="{@docRoot}design/media/spinners_form.png"> + +<h4>Spinners in forms</h4> +<p>Spinners are useful for data picking in forms. They are compact and integrate nicely with other +components. Use spinners in forms for both simple data input and in combination with other input +fields. For example, a text field might let you edit an email address for a contact, while its +associated spinner allows you to select whether it's a Home or Work address.</p> + + </div> + <div class="layout-content-col span-7"> + + <img src="{@docRoot}design/media/spinners_actionbar.png"> + +<h4>Spinners in action bars</h4> +<p>Use spinners in action bars to switch views. For example, Gmail uses a spinner to permit switching +between accounts or commonly used labels. Spinners are useful when changing the view is important to +your app, but not necessarily a frequent occurrence. In cases where view switching is frequent, use +tabs.</p> + + </div> +</div> + +<img src="{@docRoot}design/media/spinners_hololightanddark.png"> +<div class="figure-caption"> + Spinners in the Holo Dark and Holo Light themes, in various states. +</div> diff --git a/docs/html/design/building-blocks/switches.jd b/docs/html/design/building-blocks/switches.jd new file mode 100644 index 0000000..607e0b6 --- /dev/null +++ b/docs/html/design/building-blocks/switches.jd @@ -0,0 +1,31 @@ +page.title=Switches +@jd:body + +<p>Switches allow the user to select options. There are three kinds of switches: checkboxes, radio +buttons, and on/off switches.</p> +<h2 id="checkboxes">Checkboxes</h2> + +<p>Checkboxes allow the user to select multiple options from a set. Avoid using a single checkbox to +turn an option off or on. Instead, use an on/off switch.</p> + +<div style="text-align: center"> + <img src="{@docRoot}design/media/switches_checkboxes.png"> +</div> + +<h2 id="radio-buttons">Radio Buttons</h2> + +<p>Radio buttons allow the user to select one option from a set. Use radio buttons for exclusive +selection if you think that the user needs to see all available options side-by-side. Otherwise, +consider a spinner, which uses less space.</p> + +<div style="text-align: center"> + <img src="{@docRoot}design/media/switches_radios.png"> +</div> + +<h2 id="switches">On/off Switches</h2> + +<p>On/off switches toggle the state of a single settings option.</p> + +<div style="text-align: center"> + <img src="{@docRoot}design/media/switches_switches.png"> +</div> diff --git a/docs/html/design/building-blocks/tabs.jd b/docs/html/design/building-blocks/tabs.jd new file mode 100644 index 0000000..19ed1c3 --- /dev/null +++ b/docs/html/design/building-blocks/tabs.jd @@ -0,0 +1,59 @@ +page.title=Tabs +@jd:body + +<img src="{@docRoot}design/media/tabs_overview.png"> + +<p>Tabs in the action bar make it easy to explore and switch between different views or functional +aspects of your app, or to browse categorized data sets.</p> + + +<h2 id="scrollable">Scrollable Tabs</h2> + + +<div class="layout-content-row"> + <div class="layout-content-col span-6"> + +<p>Scrolling tab controls can contain a larger number of items than a standard tab control. To navigate +to the next/previous view, swipe left or right.</p> + + </div> + <div class="layout-content-col span-7"> + + <video width="400" class="with-shadow play-on-hover" autoplay> + <source src="{@docRoot}design/media/tabs_scrolly.mp4" type="video/mp4"> + <source src="{@docRoot}design/media/tabs_scrolly.webm" type="video/webm"> + <source src="{@docRoot}design/media/tabs_scrolly.ogv" type="video/ogg"> + </video> + <div class="figure-caption"> + Scrolling tabs in the Play Store app. + <div class="video-instructions"> </div> + </div> + + </div> +</div> + + +<h2 id="fixed">Fixed Tabs</h2> + + +<p>Fixed tabs display all items concurrently. To navigate to a different view, touch the tab.</p> + +<img src="{@docRoot}design/media/tabs_standard.png"> +<div class="figure-caption"> + Tabs in Holo Dark & Light. +</div> + +<img src="{@docRoot}design/media/tabs_youtube.png"> +<div class="figure-caption"> + Tabs in the YouTube app. +</div> + + + +<h2 id="stacked">Stacked Tabs</h2> + + +<p>If view navigation is essential to your app, you can break out tabs into a separate action bar. This +permits fast view switching even on narrower screens.</p> + +<img src="{@docRoot}design/media/tabs_stacked.png"> diff --git a/docs/html/design/building-blocks/text-fields.jd b/docs/html/design/building-blocks/text-fields.jd new file mode 100644 index 0000000..1b10420 --- /dev/null +++ b/docs/html/design/building-blocks/text-fields.jd @@ -0,0 +1,70 @@ +page.title=Text Fields +@jd:body + +<p>Text fields allow the user to type text into your app. They can be either single line or multi-line. +Touching a text field places the cursor and automatically displays the keyboard. In addition to +typing, text fields allow for a variety of other activities, such as text selection (cut, copy, +paste) and data lookup via auto-completion.</p> + + +<div class="layout-content-row"> + <div class="layout-content-col span-12"> + + <img src="{@docRoot}design/media/text_input_singlevsmultiline.png"> + + </div> +</div> + +<h4>Single line and multi line</h4> +<p>Single-line fields automatically scroll their content to the left as the text input cursor reaches +the right edge of the input field. Multi-line text fields automatically break to a new line for +overflow text and scroll vertically when the cursor reaches the lower edge.</p> + +<img src="{@docRoot}design/media/text_input_typesandtypedown.png"> + +<div class="layout-content-row"> + <div class="layout-content-col span-6"> + +<h4>Text field types</h4> +<p>Text fields can have different types, such as number, message, or email address. The type determines +what kind of characters are allowed inside the field, and may prompt the virtual keyboard to +optimize its layout for frequently used characters.</p> + + </div> + <div class="layout-content-col span-6"> + +<h4>Auto-complete text fields</h4> +<p>Use auto-complete text fields to present real-time completions or search results in popups, so users +can enter information more accurately and efficiently.</p> + + </div> +</div> + +<h2 id="text-selection">Text Selection</h2> + +<p>Users can select any word in a text field with a long press. This action triggers a text selection +mode that facilitates extending the selection or choosing an action to perform on the selected text. +Selection mode includes:</p> + +<div class="layout-content-row"> + <div class="layout-content-col span-9"> + + <img src="{@docRoot}design/media/text_input_textselection.png"> + + </div> + <div class="layout-content-col span-4 with-callouts"> + +<ol> +<li> +<h4>Contextual action bar</h4> +<p>A contextual action bar (CAB) displays the actions available to perform on the selection: + typically cut, copy, and paste, but apps can insert additional commands as needed.</p> +</li> +<li> +<h4>Selection handles</h4> +<p>Selection handles can be dragged to select more or less text while remaining in selection mode.</p> +</li> +</ol> + + </div> +</div> |