ActionBarActivity가 더 이상 사용되지 않는 이유


121

Android Studio를 새로 설치했고 확장 할 활동을 코딩하기 시작 ActionBarActivity했는데 더 이상 사용되지 않는 것으로 나타났습니다. 따라서 내 활동에 대한 작업 표시 줄을 어떻게 설정합니까? 또한 시작하기 교육에서는 ActionBarActivity더 이상 사용되지 않는다는 것을 참조하지 않고를 사용합니다.




16
appcompat-v7-r21.1.0부터 로직이 다소 변경되었으며 그 위에 ActionBarActivity이제 AppCompatActivity. 당신의 관점에서이 둘 사이에는 차이가 없습니다.
Eugen Pechanec 2015-04-26

1
ActionBarActivity는 지원 라이브러리 26.0.0-beta2 developer.android.com/sdk/support_api_diff/26.0.0-beta2/changes/…
ישו אוהב אותך

답변:


120

ActionBar는 Toolbar도입 된 이후 로 더 이상 사용되지 않습니다 . Toolbar모든 액션 바의 '슈퍼 셋'으로 볼 수 있습니다. 따라서 'old' ActionBar는 이제 Toolbar. 유사한 기능을 원하지만 지원 중단 경고없이 다음을 수행하십시오.

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar != null) {
    toolbar.setTitle(R.string.app_name);
    setSupportActionBar(toolbar);
}

Toolbar레이아웃 xml에서 다음 을 정의해야합니다 .

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:popupTheme="@style/ThemeOverlay.AppCompat.Light">
</android.support.v7.widget.Toolbar>

이 새로운 기능을 사용하면 나만의 사용자 지정을 만들고 ActionBarAndroid가 무거운 작업을 수행하도록 할 수 있습니다 . .NET에서 확장되는 사용자 지정보기를 만들기 만하면됩니다 Toolbar.


또한 최신 버전의 appcompat 라이브러리에 도입 된 AppCompatActivity대신을 ActionBarActivity사용해야합니다. 그러니 gradle을 업데이트하는 것을 잊지 마십시오

compile 'com.android.support:appcompat-v7:22.1.1'

9
그것은 스와핑 단순하게인가 extends ActionBarActivityextends AppCompatActivity?
Ehtesh Choudhury

9
내부적으로는 약간의 변경 사항이 있지만 인터페이스는 동일합니다. 예, 활동 유형을 바꾸는 것만 큼 쉽습니다.
Endran

61
Android Studio 마법사가 여전히 ActionBarActivity를 확장 한 다음 더 이상 사용되지 않는다고 알려줍니다. 내부적으로 @Google과 소통하나요?
Boy

완벽한 솔루션이 아닙니다. ActionBarActivity가 아닌 ActionBar에 대한 답변입니다. 나는 @DroidMind 솔루션과 함께 갈 것
의 Shabbir Dhangot에게

다시 한 번 더 작업하십시오. 모든 사람이 Fragments를 사용하도록 권장하는 디자인과 동일합니다. Google의 디자인 원칙은 10 명이 같은 앱을 사용하는 회사에 적합합니다.
Muz 2015 년


6

이 답변은 오류 메시지를 제거하는 간단한 방법을 제공합니다. 다른 사람에게 추가하는 것으로 볼 수 있습니다. '

우리는 부모 액티비티 클래스를 변경하는 경우 : ActionBarActivityAppCompatActivity오류 메시지가 사라집니다.

자세한 정보는 여기 를 클릭 하세요 .


1
이것이 다른 사람에게 추가되는 것처럼 보입니까?
Noah Herron
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.