다음을 통해 공유


두 번째 도구 모음 추가

개요

작업 표시줄을 Toolbar 바꾸는 것 이상의 작업을 수행할 수 있습니다. 활동 내에서 여러 번 사용할 수 있고, 화면의 어느 위치에 배치하도록 사용자 지정할 수 있으며, 화면의 일부 너비에만 적용되도록 구성할 수 있습니다. 아래 예제에서는 두 번째 Toolbar 를 만들어 화면 아래쪽에 배치하는 방법을 보여 줍니다. 그러면 Toolbar 복사, 잘라내기 및 붙여넣기 메뉴 항목이 구현됩니다.

두 번째 도구 모음 정의

레이아웃 파일 Main.axml 을 편집하고 해당 내용을 다음 XML로 바꿉니다.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <include
        android:id="@+id/toolbar"
        layout="@layout/toolbar" />
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/main_content"
        android:layout_below="@id/toolbar">
      <ImageView
          android:layout_width="fill_parent"
          android:layout_height="0dp"
          android:layout_weight="1" />
      <Toolbar
          android:id="@+id/edit_toolbar"
          android:minHeight="?android:attr/actionBarSize"
          android:background="?android:attr/colorAccent"
          android:theme="@android:style/ThemeOverlay.Material.Dark.ActionBar"
          android:layout_width="match_parent"
          android:layout_height="wrap_content" />
    </LinearLayout>
</RelativeLayout>

이 XML은 화면 중간에 빈 ImageView 채우기를 사용하여 화면 아래쪽에 초 Toolbar 를 추가합니다. 이 Toolbar 높이가 작업 표시줄의 높이로 설정됩니다.

android:minHeight="?android:attr/actionBarSize"

Toolbar 배경색은 다음에 정의될 테마 컬러로 설정됩니다.

android:background="?android:attr/colorAccent

이는 Toolbar 작업 표시줄 바꾸기에서 만든 테마와 다른 테마(ThemeOverlay.Material.Dark.ActionBar)Toolbar를 기반으로 하며 활동의 창 장식이나 첫 번째 Toolbar테마에 바인딩되지 않습니다.

리소스/값/styles.xml 편집하고 스타일 정의에 다음 강조색을 추가합니다.

<item name="android:colorAccent">#C7A935</item>

그러면 아래쪽 도구 모음에 진한 주황색이 표시됩니다. 앱을 빌드하고 실행하면 화면 아래쪽에 빈 두 번째 도구 모음이 표시됩니다.

화면 아래쪽에 노란색 두 번째 도구 모음이 있는 앱의 스크린샷

편집 메뉴 항목 추가

이 섹션에서는 편집 메뉴 항목을 아래쪽 Toolbar에 추가하는 방법을 설명합니다.

보조 항목에 메뉴 항목을 추가하려면 다음을 수행합니다.Toolbar

  1. 앱 프로젝트의 폴더에 mipmap- 메뉴 아이콘을 추가합니다(필요한 경우).

  2. 리소스/메뉴에 추가 메뉴 리소스 파일을 추가하여 메뉴 항목의 내용을 정의합니다.

  3. 활동의 OnCreate 메서드에서 (호출FindViewById하여 Toolbar ) 찾은 후 '의 메뉴를 확장Toolbar합니다.

  4. 새 메뉴 항목에 OnCreate 대한 클릭 처리기를 구현합니다.

다음 섹션에서는 이 프로세스를 자세히 보여 줍니다. 잘라내기, 복사붙여넣 기 메뉴 항목이 아래쪽 Toolbar에 추가됩니다.

편집 메뉴 리소스 정의

리소스/메뉴 하위 디렉터리에서 edit_menus.xml이라는 새 XML 파일을 만들고 내용을 다음 XML로 바꿉니다.

<?xml version="1.0" encoding="utf-8" ?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
  <item
       android:id="@+id/menu_cut"
       android:icon="@mipmap/ic_menu_cut_holo_dark"
       android:showAsAction="ifRoom"
       android:title="Cut" />
  <item
       android:id="@+id/menu_copy"
       android:icon="@mipmap/ic_menu_copy_holo_dark"
       android:showAsAction="ifRoom"
       android:title="Copy" />
  <item
       android:id="@+id/menu_paste"
       android:icon="@mipmap/ic_menu_paste_holo_dark"
       android:showAsAction="ifRoom"
       android:title="Paste" />
</menu>

이 XML은 잘라내기, 복사붙여넣기 메뉴 항목을 만듭니다(작업 모음 바꾸기의 mipmap- 폴더에 추가된 아이콘 사용).

메뉴 확장

MainActivity.cs 메서드OnCreate 끝에 다음 코드 줄을 추가합니다.

var editToolbar = FindViewById<Toolbar>(Resource.Id.edit_toolbar);
editToolbar.Title = "Editing";
editToolbar.InflateMenu (Resource.Menu.edit_menus);
editToolbar.MenuItemClick += (sender, e) => {
    Toast.MakeText(this, "Bottom toolbar tapped: " + e.Item.TitleFormatted, ToastLength.Short).Show();
};

이 코드는 edit_toolbar Main.axml정의된 보기를 찾고, 제목을 편집으로 설정하고, 메뉴 항목(edit_menus.xml 정의됨)을 확장합니다. 탭된 편집 아이콘을 나타내는 알림을 표시하는 메뉴 클릭 처리기를 정의합니다.

앱을 빌드하고 실행합니다. 앱이 실행되면 위에 추가된 텍스트와 아이콘이 다음과 같이 표시됩니다.

잘라내기, 복사 및 붙여넣기 아이콘이 있는 아래쪽 도구 모음 다이어그램

잘라내기 메뉴 아이콘을 탭하면 다음 알림이 표시됩니다.

잘라내기 메뉴 아이콘을 탭했음을 나타내는 알림 스크린샷

두 도구 모음에서 메뉴 항목을 탭하면 결과 알림이 표시됩니다.

탭할 저장, 복사 및 붙여넣기 메뉴 항목에 대한 알림 스크린샷

위쪽 단추

대부분의 Android 앱은 앱 탐색을 위해 뒤로 단추를 사용합니다. 뒤로 단추를 누르면 사용자가 이전 화면으로 이동합니다. 그러나 사용자가 앱의 기본 화면으로 "위쪽"으로 쉽게 이동할 수 있도록 하는 Up 단추를 제공할 수도 있습니다. 사용자가 위로 단추를 선택하면 사용자는 앱 계층 구조에서 더 높은 수준으로 이동합니다. 즉, 앱은 사용자가 이전에 방문한 활동으로 다시 팝업하지 않고 백 스택에서 여러 활동을 다시 표시합니다.

작업 표시줄로 사용하는 Toolbar 두 번째 작업에서 Up 단추를 사용하도록 설정하려면 두 번째 작업의 OnCreate 메서드에서 해당 및 SetHomeButtonEnabled 메서드를 호출 SetDisplayHomeAsUpEnabled 합니다.

SetActionBar (toolbar);
...
ActionBar.SetDisplayHomeAsUpEnabled (true);
ActionBar.SetHomeButtonEnabled (true);