Skip to content

Most visited

Recently visited

navigation

앱 바 설정

액션 바의 가장 기본적인 형식은, 한쪽에는 액티비티의 제목을 표시하고 다른 쪽에는 오버플로 메뉴를 표시하는 것입니다. 앱 바는 이 단순한 형식만으로도 유용한 정보를 사용자에게 제공하며 일관된 모양과 느낌을 Android 앱에 제공합니다.

그림 1. 앱 제목과 오버플로 메뉴가 있는 앱 바.

Android 3.0(API 레벨 11)부터는, 기본 테마를 사용하는 모든 액티비티에는 ActionBar가 앱 바로 제공됩니다. 그러나, 앱 바 기능은 다양한 Android 릴리스를 거쳐 기본 ActionBar에 점차적으로 추가되어 왔습니다. 이 결과, 어떤 버전의 Android 시스템이 기기에 사용 중인지에 따라 기본 ActionBar가 다르게 동작합니다. 이와 반대로, 가장 최근의 기능들은 Toolbar의 지원 라이브러리 버전에 추가되고 있으며, 이 지원 라이브러리를 사용할 수 있는 모든 기기에서 이들 기능이 제공됩니다.

이러한 이유로, 여러분은 지원 라이브러리의 Toolbar 클래스를 사용하여 액티비티의 앱 바를 구현해야 합니다. 지원 라이브러리의 툴바를 사용하면 수많은 종류의 기기에서 일관된 앱 동작을 보장할 수 있습니다. 예를 들어, Toolbar 위젯은 Android 2.1(API 레벨 7) 이상이 실행되는 기기에서 머티리얼 디자인 환경을 제공하지만, Android 5.0(API 레벨 21) 이상이 기기에서 실행되는 경우에는 기본 액션 바가 머티리얼 디자인을 지원하지 않습니다.

액티비티에 툴바 추가

다음 단계에서는 Toolbar를 액티비티의 앱 바로 설정하는 방법에 대해 설명합니다.
  1. v7 AppCompat 지원 라이브러리를 프로젝트에 추가합니다(지원 라이브러리 설정 설명 참조).
  2. 액티비티가 AppCompatActivity를 확장하는지 확인합니다.
    public class MyActivity extends AppCompatActivity {
      // ...
    }
    

    참고: 앱에서 Toolbar를 앱 바로 사용하는 모든 액티비티에 대해 이 변경을 수행합니다.

  3. 앱 매니페스트에서, AppCompat의 NoActionBar 테마 중 하나를 사용하도록 <application> 요소를 설정합니다. 이 테마 중 하나를 사용할 경우, 앱은 기본 ActionBar 클래스를 사용하여 앱 바를 제공할 수 없습니다. 예를 들어 다음과 같이 합니다.
    <application
        android:theme="@style/Theme.AppCompat.Light.NoActionBar"
        />
    
  4. Toolbar를 액티비티의 레이아웃에 추가합니다. 예를 들어, 아래 레이아웃 코드는 Toolbar를 추가하며 액티비티 위에 부동 툴바로 나타납니다.
    <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"/>
    

    머티리얼 디자인 사양에서는 앱 바의 높이를 4dp로 권장합니다.

    툴바를 앱 바로 사용 중이므로, 이 툴바를 액티비티 레이아웃의 맨 위에 배치합니다.

  5. 액티비티의 onCreate() 메서드에서, 액티비티의 setSupportActionBar() 메서드를 호출하고 액티비티의 툴바를 전달합니다. 이 메서드는 툴바를 액티비티의 앱 바로 설정합니다. 예를 들어 다음과 같이 합니다.
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
        Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
        setSupportActionBar(myToolbar);
        }
    

이제 여러분의 앱에 기본 액션 바가 있습니다. 기본적으로, 이 액션 바에는 앱의 이름과 오버플로 메뉴가 포함됩니다. 처음에는 옵션 메뉴에 Settings 항목만 표시됩니다. 액션 추가 및 처리에서 설명된 것처럼 더 많은 액션을 액션 바와 오버플로 메뉴에 추가할 수 있습니다.

앱 바 유틸리티 메서드 사용

툴바를 액티비티의 앱 바로 설정했다면, 이제 여러분은 v7 AppCompat 지원 라이브러리 ActionBar 클래스에서 제공하는 다양한 유틸리티 메서드에 액세스할 수 있습니다. 이 접근방식에서는 여러 가지 유용한 작업을 수행할 수 있습니다(예: 앱 바 숨김 및 표시).

ActionBar 유틸리티 메서드를 사용하려면, 액티비티의 getSupportActionBar() 메서드를 호출합니다. 이 메서드는 AppCompat ActionBar 객체에 대한 참조를 반환합니다. 이 참조를 가진 후에 어떤 ActionBar 메서드라도 호출하여 앱 바를 조정할 수 있습니다. 예를 들어, 앱 바를 숨기려면 ActionBar.hide()를 호출합니다.

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

WeChat에서 Google Developers 팔로우하기

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience. (Dec 2017 Android Platform & Tools Survey)