From 3d1032abae253369fb235f4d4a755bbf212c6be3 Mon Sep 17 00:00:00 2001 From: Andrew Solovay Date: Thu, 9 Jul 2015 18:11:50 -0700 Subject: [PATCH] docs: New app bar training docs Replacing the existing "ActionBar" training docs with new, up-to-date ones focused on using the appcompat Toolbar. Ultimately these lessons will also replace the existing ActionBar UI guide. See first comment for doc stage location. Change-Id: Ic20362ec4c4fc872c4388b05367451ae8072938b --- .../guide/topics/resources/menu-resource.jd | 12 +- .../images/training/appbar/appbar_basic.png | Bin 0 -> 11743 bytes .../training/appbar/appbar_basic_2x.png | Bin 0 -> 25389 bytes .../images/training/appbar/appbar_sheets.png | Bin 0 -> 6741 bytes .../training/appbar/appbar_sheets_2x.png | Bin 0 -> 14093 bytes .../training/appbar/appbar_with_button.png | Bin 0 -> 10344 bytes .../training/appbar/appbar_with_button_2x.png | Bin 0 -> 22077 bytes docs/html/training/appbar/actions.jd | 154 +++++++++++++++ docs/html/training/appbar/index.jd | 98 ++++++++++ docs/html/training/appbar/setting-up.jd | 181 ++++++++++++++++++ docs/html/training/appbar/up-action.jd | 134 +++++++++++++ docs/html/training/training_toc.cs | 22 ++- .../training/appbar/appbar_basic_fullrez.png | Bin 0 -> 25400 bytes .../training/appbar/appbar_sheets_full.png | Bin 0 -> 66681 bytes .../appbar/appbar_with_button_full.png | Bin 0 -> 22695 bytes 15 files changed, 596 insertions(+), 5 deletions(-) create mode 100644 docs/html/images/training/appbar/appbar_basic.png create mode 100644 docs/html/images/training/appbar/appbar_basic_2x.png create mode 100644 docs/html/images/training/appbar/appbar_sheets.png create mode 100644 docs/html/images/training/appbar/appbar_sheets_2x.png create mode 100644 docs/html/images/training/appbar/appbar_with_button.png create mode 100644 docs/html/images/training/appbar/appbar_with_button_2x.png create mode 100644 docs/html/training/appbar/actions.jd create mode 100644 docs/html/training/appbar/index.jd create mode 100644 docs/html/training/appbar/setting-up.jd create mode 100644 docs/html/training/appbar/up-action.jd create mode 100644 docs/image_sources/training/appbar/appbar_basic_fullrez.png create mode 100644 docs/image_sources/training/appbar/appbar_sheets_full.png create mode 100644 docs/image_sources/training/appbar/appbar_with_button_full.png diff --git a/docs/html/guide/topics/resources/menu-resource.jd b/docs/html/guide/topics/resources/menu-resource.jd index b2d6eb3445c9b..af56a6c5cabe6 100644 --- a/docs/html/guide/topics/resources/menu-resource.jd +++ b/docs/html/guide/topics/resources/menu-resource.jd @@ -122,12 +122,16 @@ Bar. A menu item can appear as an action item only when the activity includes an android.app.ActionBar} (introduced in API Level 11). Valid values: - + - +
ValueDescription
ifRoomOnly place this item in the Action Bar if -there is room for it.
ifRoomOnly place this item in the + Action Bar if there is room for it. If there is not room for all + the items marked "ifRoom", the items with the lowest + orderInCategory values are displayed as actions, and + the remaining items are displayed in the overflow menu.
withTextAlso include the title text (defined by {@code android:title}) with the action item. You can include this value along with one of the others as a flag set, by separating them with a pipe {@code |}.
neverNever place this item in the Action Bar.
neverNever place this item in the Action Bar. Instead, list the item in the Action Bar's overflow + menu.
alwaysAlways place this item in the Action Bar. Avoid using this unless it's critical that the item always appear in the action bar. Setting multiple items to always appear as action items can result in them overlapping @@ -301,4 +305,4 @@ available only on Android 3.0 (API Level 11) and greater.

- \ No newline at end of file + diff --git a/docs/html/images/training/appbar/appbar_basic.png b/docs/html/images/training/appbar/appbar_basic.png new file mode 100644 index 0000000000000000000000000000000000000000..bcac6f5a40eff4b2d8ff596e01da40438280fe3b GIT binary patch literal 11743 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 literal 0 HcmV?d00001 diff --git a/docs/html/images/training/appbar/appbar_sheets.png b/docs/html/images/training/appbar/appbar_sheets.png new file mode 100644 index 0000000000000000000000000000000000000000..74cefd909355c1383f93ee40eee705cd8d6d86a8 GIT binary patch literal 6741 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 WL2*0#O=|p+5TF6kRxMGsc=vA>0|DUx literal 0 HcmV?d00001 diff --git a/docs/html/images/training/appbar/appbar_sheets_2x.png b/docs/html/images/training/appbar/appbar_sheets_2x.png new file mode 100644 index 0000000000000000000000000000000000000000..81241100c186ff18b357c68be1c1a2a0a3958b5a GIT binary patch literal 14093 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 I+}n`<0kjL2=>Px# literal 0 HcmV?d00001 diff --git a/docs/html/images/training/appbar/appbar_with_button.png b/docs/html/images/training/appbar/appbar_with_button.png new file mode 100644 index 0000000000000000000000000000000000000000..356f2f4520ac3c82cd45f84960549b7e04ae7942 GIT binary patch literal 10344 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 literal 0 HcmV?d00001 diff --git a/docs/html/images/training/appbar/appbar_with_button_2x.png b/docs/html/images/training/appbar/appbar_with_button_2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1292b24f0a63da52f5907570bbd619023244b04a GIT binary patch literal 22077 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 Vo!vfVJUB0qV%XTxs;SJx{{cc5GrRx* literal 0 HcmV?d00001 diff --git a/docs/html/training/appbar/actions.jd b/docs/html/training/appbar/actions.jd new file mode 100644 index 0000000000000..68483cafd6363 --- /dev/null +++ b/docs/html/training/appbar/actions.jd @@ -0,0 +1,154 @@ +page.title=Adding and Handling Actions +page.tags="appbar","actionbar" +helpoutsWidget=true +trainingnavtop=true + +@jd:body + +

+ + + +
+

Design Guide

+

Action Buttons

+
+
+ + +

+ The app bar allows you to add buttons for user actions. This feature lets you + put the most important actions for the current context right at the + top of the app. For example, a photo browsing app might show share + and create album buttons at the top when the user is looking at + their photo roll; when the user looks at an individual photo, the app might + show crop and filter buttons. +

+ +

+ Space in the app bar is limited. If an app declares more actions than can + fit in the app bar, the app bar send the excess actions to an + overflow menu. The app can also specify that an action should always + be shown in the overflow menu, instead of being displayed on the app bar. +

+ + + +

+ Figure 1. An app bar with a single action button and an + overflow menu. +

+ +

Add Action Buttons

+ +

+ All action buttons and other items available in the action overflow are + defined in an XML menu resource. To + add actions to the action bar, create a new XML file in your project's + res/menu/ directory. +

+ +

+ Add an <item> + element for each item you want to include in the action bar, as shown in this + code example of a menu XML file: +

+ +
+<menu xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <!-- "Mark Favorite", should appear as action button if possible -->
+    <item
+        android:id="@+id/action_favorite"
+        android:icon="@drawable/ic_favorite_black_48dp"
+        android:title="@string/action_favorite"
+        app:showAsAction="ifRoom"/>
+
+    <!-- Settings, should always be in the overflow -->
+    <item android:id="@+id/action_settings"
+          android:title="@string/action_settings"
+          app:showAsAction="never"/>
+
+</menu>
+
+ +

+ The app:showAsAction attribute specifies whether the action + should be shown as a button on the app bar. If you set + app:showAsAction="ifRoom" (as in the example code's favorite action), the action is displayed as a button + if there is room in the app bar for it; if there is not enough room, excess + actions are sent to the overflow menu. If you set + app:showAsAction="never" (as in the example code's settings action), the action is always listed in the + overflow menu, not displayed in the app bar. +

+ +

+ The system uses the action's icon as the action button if the action is + displayed in the app bar. You can find many useful icons on the Material Icons page. +

+ +

Respond to Actions

+ +

+ When the user selects one of the app bar items, the system calls your + activity's {@link android.app.Activity#onOptionsItemSelected + onOptionsItemSelected()} callback method, and passes a {@link + android.view.MenuItem} object to indicate which item was clicked. In your + implementation of {@link android.app.Activity#onOptionsItemSelected + onOptionsItemSelected()}, call the {@link android.view.MenuItem#getItemId + MenuItem.getItemId()} method to determine which item was pressed. The ID returned + matches the value you declared in the corresponding <item> + element's android:id attribute. +

+ +

+ For example, the following code checks to see which action the user selected. + If the method does not recognize the user's action, it invokes the superclass + method: +

+ +
+@Override
+public boolean onOptionsItemSelected(MenuItem item) {
+    switch (item.getItemId()) {
+        case R.id.action_settings:
+            // User chose the "Settings" item, show the app settings UI...
+            return true;
+
+        case R.id.action_favorite:
+            // User chose the "Favorite" action, mark the current item
+            // as a favorite...
+            return true;
+
+        default:
+            // If we got here, the user's action was not recognized.
+            // Invoke the superclass to handle it.
+            return super.onOptionsItemSelected(item);
+
+    }
+}
+
diff --git a/docs/html/training/appbar/index.jd b/docs/html/training/appbar/index.jd new file mode 100644 index 0000000000000..144e99f2f525b --- /dev/null +++ b/docs/html/training/appbar/index.jd @@ -0,0 +1,98 @@ +page.title=Adding the App Bar +page.tags="appbar","actionbar" +helpoutsWidget=true +trainingnavtop=true +startpage=true + +@jd:body + +
+
+ +

Dependencies and prerequisites

+
    +
  • Android 2.1 (API level 7) or higher
  • +
+ + +

You should also read

+ + +
+
+ +

+ The app bar, also known as the action bar, is one of the most + important design elements in your app's activities, because + it provides a visual structure and interactive elements that are familiar to + users. Using the app bar makes your app consistent with other Android apps, + allowing users to quickly understand how to operate your app and have a great + experience. + The key functions of the app bar + are as follows: +

+ +
    +
  • A dedicated space for giving your app an identity and indicating the + user's location in the app. +
  • + +
  • Access to important actions in a predictable way, such as search. +
  • + +
  • Support for navigation and view switching (with tabs or drop-down lists). +
  • +
+ + + +

+ This class describes how to use the + v7 + appcompat support library's {@link + android.support.v7.widget.Toolbar} widget as an app bar. There are other ways + to implement an app bar—for example, some themes set up an {@link + android.app.ActionBar} as an app bar by default—but using the appcompat + {@link android.support.v7.widget.Toolbar} makes it easy to set up an app bar + that works on the widest range of devices, and also gives you room to + customize your app bar later on as your app develops. +

+ +

Lessons

+ +
+
+ Setting Up the App Bar +
+ +
+ Learn how to add a {@link android.support.v7.widget.Toolbar} widget to your + activity, and set it as the activity's app bar. +
+ +
+ Adding and Handling Actions +
+ +
+ Learn how to add actions to the app bar and its overflow menu, and how to + respond when users choose those actions. +
+ +
+ Adding an Up Action +
+ +
+ Learn how to add an Up button to your app bar, so users + can navigate back to the app's home screen. +
+
diff --git a/docs/html/training/appbar/setting-up.jd b/docs/html/training/appbar/setting-up.jd new file mode 100644 index 0000000000000..cc963c6df398f --- /dev/null +++ b/docs/html/training/appbar/setting-up.jd @@ -0,0 +1,181 @@ +page.title=Setting Up the App Bar +page.tags="appbar","actionbar", "toolbar" +helpoutsWidget=true +trainingnavtop=true + +@jd:body + +
+
+ +

This lesson teaches you to

+ +
    +
  1. Add a Toolbar to an Activity
  2. +
  3. Use App Bar Utility Methods
  4. +
+ +

You should also read

+ +
+
+ + +

+ In its most basic form, the action bar displays the title for the activity on + one side and an overflow menu on the other. Even in this simple + form, the app bar provides useful information to the users, and helps to give + Android apps a consistent look and feel. +

+ + +

Figure 1. An app bar with the app +title and overflow menu. + +

+ Beginning with Android 3.0 (API level 11), all + activities that use the default theme have an {@link android.app.ActionBar} + as an app bar. However, app bar features have gradually been added to the + native {@link android.app.ActionBar} over various Android releases. As a + result, the native {@link android.app.ActionBar} behaves differently + depending on what version of the Android system a device may be using. By + contrast, the most recent features are added to the support library's version + of {@link android.support.v7.widget.Toolbar}, and they are available on any + device that can use the support library. +

+ +

+ For this reason, you should use the support library's {@link + android.support.v7.widget.Toolbar} class to implement your activities' app + bars. Using the support library's toolbar helps ensure that your app will + have consistent behavior across the widest range of devices. For example, the + {@link android.support.v7.widget.Toolbar} widget provides a material design experience on + devices running Android 2.1 (API level 7) or later, but the native action + bar doesn't support material design unless the device is running Android 5.0 + (API level 21) or later. +

+ +

Add a Toolbar to an Activity

+ +These steps describe how to set up a {@link android.support.v7.widget.Toolbar} +as your activity's app bar: + +
    +
  1. Add the the + v7 + appcompat support library to your project, as described in Support Library Setup. +
  2. + +
  3. Make sure the activity extends {@link + android.support.v7.app.AppCompatActivity}: + +
    +public class MyActivity extends AppCompatActivity {
    +  // ...
    +}
    +
    +

    + Note: Make this change for every activity in your app + that uses a {@link android.support.v7.widget.Toolbar} as an app bar. +

    +
  4. + +
  5. In the app manifest, set the <application> + element to use one of appcompat's {@link + android.support.v7.appcompat.R.style#Theme_AppCompat_NoActionBar NoActionBar} + themes. Using one of these themes prevents the app from using the native + {@link android.app.ActionBar} class to provide the app bar. For example: + +
    +<application
    +    android:theme="@style/Theme.AppCompat.Light.NoActionBar"
    +    />
    +
    +
  6. + +
  7. Add a {@link android.support.v7.widget.Toolbar} to the activity's layout. + For example, the following layout code adds a {@link + android.support.v7.widget.Toolbar} and gives it the appearance of floating + above the activity: + +
    +<android.support.v7.widget.Toolbar
    +   android:id="@+id/my_toolbar"
    +   android:layout_width="match_parent"
    +   android:layout_height="?attr/actionBarSize"
    +   android:background="?attr/colorPrimary"
    +   android:elevation="4dp"
    +   android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
    +   app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
    +
    +

    + The + Material Design specification recommends that app bars have an + elevation of 4 dp. +

    + +

    + Position the toolbar at the top of the activity's + layout, + since you are using it as an app bar. +

    +
  8. + +
  9. In the activity's {@link android.app.Activity#onCreate onCreate()} + method, call the activity's {@link + android.support.v7.app.AppCompatActivity#setSupportActionBar + setSupportActionBar()} method, and pass the activity's toolbar. This method + sets the toolbar as the app bar for the activity. For example: + +
    +@Override
    +protected void onCreate(Bundle savedInstanceState) {
    +    super.onCreate(savedInstanceState);
    +    setContentView(R.layout.activity_my);
    +    Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
    +    setSupportActionBar(myToolbar);
    +    }
    +
    +
  10. +
+ +

+ Your app now has a basic action bar. By default, the action bar contains just + the name of the app and an overflow menu. The options menu initially contains + just the Settings item. You can add more actions to the + action bar and the overflow menu, as described in Adding and Handling Actions. +

+ +

Use App Bar Utility Methods

+ +

+ Once you set the toolbar as an activity's app bar, you have access to the + various utility methods provided by the + v7 + appcompat support library's {@link + android.support.v7.app.ActionBar} class. This approach lets you do a number of useful + things, like hide and show the app bar. +

+ +

+ To use the {@link android.support.v7.app.ActionBar} utility methods, call the + activity's {@link + android.support.v7.app.AppCompatActivity#getSupportActionBar + getSupportActionBar()} method. This method returns a reference to an + appcompat {@link android.support.v7.app.ActionBar} object. + Once you have that reference, you can call any of the {@link + android.support.v7.app.ActionBar} methods to adjust the app bar. For example, + to hide the app bar, call {@link android.support.v7.app.ActionBar#hide + ActionBar.hide()}. +

diff --git a/docs/html/training/appbar/up-action.jd b/docs/html/training/appbar/up-action.jd new file mode 100644 index 0000000000000..1336d207ff03f --- /dev/null +++ b/docs/html/training/appbar/up-action.jd @@ -0,0 +1,134 @@ +page.title=Adding an Up Action +page.tags="appbar","actionbar", "up" +helpoutsWidget=true +trainingnavtop=true + +@jd:body + +
+
+ +

This lesson teaches you to

+ +
    +
  1. + Declare a Parent Activity +
  2. + +
  3. + Enable the Up Button +
  4. +
+ +

See Also

+ + + +
+
+ +

+ Your app should make it easy for users to find their way back to the app's + main screen. One simple way to do this is to provide an Up + button on the app bar for all activities except the main one. When the user + selects the Up button, the app navigates to the parent + activity. +

+ +

+ This lesson shows you how to add an Up button to an activity by + declaring the activity's parent in the manifest, and enabling the app bar's + Up button. +

+ +

Declare a Parent Activity

+ +

+ To support the up functionality in an activity, you need to declare the + activity's parent. You can do this in the app manifest, by setting an + android:parentActivityName attribute. +

+ +

+ The android:parentActivityName attribute + was introduced in Android 4.1 (API level 16). To support devices with older + versions of Android, define a <meta-data> + name-value pair, where the name is + "android.support.PARENT_ACTIVITY" and the value is the name of + the parent activity. +

+ +

+ For example, suppose your app has a main activity named + MainActivity and a single child activity. The following manifest + code declares both activities, and specifies the parent/child relationship: +

+
+<application ... >
+    ...
+
+    <!-- The main/home activity (it has no parent activity) -->
+
+    <activity
+        android:name="com.example.myfirstapp.MainActivity" ...>
+        ...
+    </activity>
+
+    <!-- A child of the main activity -->
+    <activity
+        android:name="com.example.myfirstapp.MyChildActivity"
+        android:label="@string/title_activity_child"
+        android:parentActivityName="com.example.myfirstapp.MainActivity" >
+
+        <!-- Parent activity meta-data to support 4.0 and lower -->
+        <meta-data
+            android:name="android.support.PARENT_ACTIVITY"
+            android:value="com.example.myfirstapp.MainActivity" />
+    </activity>
+</application>
+
+ +

Enable the Up Button

+ +

+ To enable the Up button for an activity that has a parent + activity, call the app bar's {@link + android.support.v7.app.ActionBar#setDisplayHomeAsUpEnabled + setDisplayHomeAsUpEnabled()} method. Typically, you would do this when the + activity is created. For example, the following {@link + android.app.Activity#onCreate onCreate()} method sets a {@link + android.support.v7.widget.Toolbar} as the app bar for + MyChildActivity, then enables that app bar's Up button: +

+ +
+@Override
+protected void onCreate(Bundle savedInstanceState) {
+    super.onCreate(savedInstanceState);
+    setContentView(R.layout.activity_my_child);
+
+    // my_child_toolbar is defined in the layout file
+    Toolbar myChildToolbar =
+        (Toolbar) findViewById(R.id.my_child_toolbar);
+    setSupportActionBar(myChildToolbar);
+
+    // Get a support ActionBar corresponding to this toolbar
+    ActionBar ab = getSupportActionBar();
+
+    // Enable the Up button
+    ab.setDisplayHomeAsUpEnabled(true);
+}
+
+ +

+ You do not need to catch the up action in the activity's {@link + android.app.Activity#onOptionsItemSelected onOptionsItemSelected()} method. + Instead, that method should call its superclass, as shown in Respond to Actions. The superclass method + responds to the Up selection by navigating to the parent + activity, as specified in the app manifest. +

diff --git a/docs/html/training/training_toc.cs b/docs/html/training/training_toc.cs index 296334520e500..002fb09927dde 100644 --- a/docs/html/training/training_toc.cs +++ b/docs/html/training/training_toc.cs @@ -1388,7 +1388,6 @@ results."