[2] Action Bar 추가하기 [1] 액션 바 셋업하기

액션 바 셋업하기

이번 시간에 배울 것

  1. 3.0 이상의 안드로이드 버전 이상에서 액션 바 지원하기
  2. 안드로이드 버전 2.1 이상 지원하기

함께 봐야 할 것 – YOU SHOULD ALSO READ

Setting Up the Support Library


삽질하고 나서 다시 수정을 했습니다. 삽질 후 깨달음을 바로 정리합니다.
안드로이드 버전, SDK버전, API 버전에 따라서 달라지는게 너무 많아 아직도 머리가 어지럽네요
안드로이드를 배울 때, 레퍼런스 설명을 볼 때, 자신의 앱의 환경을 잘 상기하며 진행하는게 좋다는 것을 알게 되었습니다.


why 액션 바 셋업하기

안드로이드 버전에 따라서 액션 바는 다르게 셋업을 합니다. 그 과정을 알아야 우리의 앱에서 액션 바가 잘 구동되겠지요

대부분의 기본 모양에서, 액션바는 액티비티의 타이틀을 보여줍니다.
그리고 왼쪽에 아이콘을 두고 있지요.
심지어 이 간단한 앱에서도, 액션바는 유용하게 쓰입니다.
어떠한 액티비티에서 사용자에게 사용자가 현재 어디에 있는지를 알려 줄 수 있고,
우리들의 앱을 일관성있게 유지보수하기도 좋습니다.

그림 1. 아이콘과 액티비티의 타이틀을 갖고 있는 액션바

기본 액션바를 셋업하기 위해서 우리의 앱이 액티비티 테마를 사용하도록 요청해야 합니다.
어떤 테마를 요청할 것인지는 안드로이드의 버전에 따라 달라집니다. (3.0 전 후로 나뉩니다)
3.0 버전 이상일 때와 이하일 때 어떻게 하는지 알아봅니다.

3.0 이상의 안드로이드 버전 이상에서 액션 바 지원하기


“번역자는 API 10 : 안드로이드 2.3.3 진저브레드 기준으로 앱을 만들고 있기 때문에 현 섹션은 넘어갑니다”

안드로이드 3.0 (API 버전 11) 부터, 액션바는 모든 액티비티에 포함됩니다.
또한 Theme.Holo 테마 (또는 그 하위 테마) 를 사용합니다.
이 테마는 targetSdkVersion or  minSdkVersion 속성이 11 혹은 그 이상일 때 기본 테마입니다.

액티비티에 액션바를 더하기 위해서, android:mindSdkVersion 속성 하나만 11 이상으로 세팅해 주면 됩니다.

<manifest ... >
    <uses-sdk android:minSdkVersion="11" ... />
    ...
</manifest>

주의 : 만약 커스텀 테마를 생성했다면, Theme.Holo 테마를 부모로 사용하는 것에 주의하십시오.
자세한 내용은 Styling the Action Bar 를 확인하세요.

이제 Theme.Holo 테마는 우리의 앱에 적용됩니다.
그리고 모든 액티비티는 액션 바를 보여줄 것입니다. 이게 다에요 ^^;

안드로이드 버전 2.1 이상 지원하기


“번역자는 API 10 : 안드로이드 2.3.3 진저브레드 기준으로 앱을 만들고 있습니다. 본 섹션을 잘 따라해야합니다.”

안드로이드 2.1 버전부터 3.0 버전 미만까지는, 액션 바를 추가하기 위해서는
“안드로이드 서포트 라이브러리” 를 우리의 앱에 포함해야 합니다. 
Support Library Setup 문서를 읽어 보고 v7 appcompat 라이브러리를 설치해야 합니다

서포트 라이브러리 설치하기 페이지에서 설치를 마친 후 여기로 돌아와야 합니다.

포탈이 열립니다 클릭

서포트 라이브러리를 우리의 앱 프로젝트에 넣었다면

  1. 업데이트 하세요 : 액티비티가 ActionBarActivity 를 확장(상속)할 수 있도록 수정하십시오. 예를 들어:
    (근데 이미 되어 있지요? API10 으로 시작했다면 이미 저렇게 되어 있습니다.)

    public class MainActivity extends ActionBarActivity { ... }
  2. manifest 파일에서, <application> 엘리먼트를 수정하거나 개별적으로 <activity> 엘리먼트에 Theme.AppCompat 테마를 사용하겠다고 업데이트를 하십시오. 예를 들어:
    <activity android:theme="@style/Theme.AppCompat.Light" ... >

    ActionBar04

    주의 : 만약 커스텀 테마를 생성했다면, Theme.Holo 테마를 부모로 사용하는 것에 주의하십시오.
    자세한 내용은 Styling the Action Bar 를 확인하세요.

이제 우리의 액티비티는 안드로이드 2.1 이상 버전( API level 7 이상)에서 액션 바를 포함하게 되었습니다.
(우리는 API 10입니다)

메니페스트 파일에 앱의 버전을 적절하게 세팅하는 것을 기억하세요.

<manifest ... >
    <uses-sdk android:minSdkVersion="7"  android:targetSdkVersion="18" />
    ...
</manifest>

ActionBar05

(저는 이렇게 되었습니다. targetSdkVersion=”21″은 왠지 모르겠지만 최신으로 했습니다.
자동완성 기능에서 리스트를 보여주는데 21이 제일 위에 있어서 이걸 골랐지요.
나중에 이것에 대해 다시 보겠습니다)

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중