android.support.v7.app.AppCompatActivity
어제 새로운 기능으로 최신 v7 지원 라이브러리에 추가되었습니다.
상기되어 ActionBarActivity
새로운 찬성에서 사용되지 AppCompatActivity
및 그 AppCompatActivity
지원 라이브러리 작업 표시 줄 기능을 사용하여 활동에 대한 기본 클래스입니다. 그래서, 새로운 기능이 무엇인가 AppCompatActivity
이상은 ActionBarActivity
? 무엇 향상을 AppCompatActivity
통해이 ActionBarActivity
? 그리고 장점은 AppCompatActivity
무엇입니까? 누군가 몇 개의 샘플을 공급할 수 있습니까?
모든 팁을 부탁드립니다. 그리고 미리 감사드립니다.
추신 : 나를 가장 놀라게 AppCompatActivity
한 android.support.v4.app.FragmentActivity
것은에서 직접 확장 된 클래스입니다 ActionBarActivity
! 내 말은 실제로 ActionBarActivity
할 수있는 일을 AppCompatActivity
할 수 있다는 것을 의미합니다 . 왜 안드로이드가 후자를 밀어 냈습니까?
한편, 나는 상태가 블로그 게시물을 보았다 : ” 그것은에서 이름 바꾸기 아니다 ActionBarActivity
으로 AppCompatActivity
, 내부 논리 AppCompat
를 통해 사용할 수 있습니다를AppCompatDelegate
“, 그래서 “무엇 내부 로직 의” AppCompat
? 무엇을 할 AppCompatDelegate
수 있습니까? 누군가 이것에 대한 코드를 게시 할 수 있습니까?
답변
Chris가 쓴 것처럼, 더 이상 사용되지 않는 새로운 버전 ActionBarActivity
(하나의 확장 AppCompatActivity
클래스)은 이전 버전과의 호환성 클래스를 사용하는 것이 안전합니다. 사용 중단은 new를 AppCompatActivity
직접 사용하도록 요청하는 힌트 일뿐 입니다. 내부적으로 클래스 AppCompatActivity
를 사용하는 새롭고보다 일반적인 구현입니다 AppCompatDelegate
.
새로운 개발을 시작하면 AppCompatActivity
바로 새로운 클래스 를 사용해야합니다 . 앱을 업데이트 할 기회가 있다면 ActionBarActivity
새로운 활동으로 인해 더 이상 사용되지 않습니다 . 그렇지 않으면 더 이상 사용되지 않는 활동을 유지할 수 있으며 동작에 전혀 차이가 없습니다.
에 관해서는 AppCompatDelegate
, 당신이도 아니다 활동에 새로운 색을 칠한 위젯을 가질 수 AppCompatActivity
없고 ActionBarActivity
.
예를 들어 외부 라이브러리에서 액티비티를 상속받습니다.이 라이브러리는 상속 되지 않지만AppCompatActivity
이 액티비티에 재질 위젯 (보기)을 표시하려고합니다. 이를 위해서는 AppCompatDelegate
액티비티 내부 의 인스턴스를 만들고 addContentView()
, setContentView()
등 의 해당 액티비티의 메소드를 재정의해야하며 (메소드의 AppCompatDelegate
전체 목록 은 javadoc 참조 ) 재정의 된 메소드 내부에서 호출을 내부 AppCompatDelegate
인스턴스 로 전달해야합니다 . AppCompatDelegate
나머지는 할 것이고 “구식”활동은 “구체화”될 것입니다.
답변
대부분 이름이 바뀌 ActionBarActivity
었습니다. 현재 모든 것을 설명하지는 않습니다. 원한다면 안전하게 사용할 수 있습니다 ActionBarActivity
. 심볼릭 링크처럼 생각하십시오.
답변
AppCompat 지원 라이브러리는 겸손하지만 중요한 시작으로 시작되었습니다. 모든 API 7 이상 장치를위한 일관된 단일 작업 표시 줄입니다. 개정 21에서는 모든 색상의 API 7+ 장치에 재질 색상 팔레트, 위젯 틴팅, 툴바 지원 등을 제공 하는 새로운 책임을 맡았습니다 . 이를 통해 ActionBarActivity라는 이름은 실제로 수행 한 전체 범위를 다루지 않았습니다 .
http://android-developers.blogspot.it/2015/04/android-support-library-221.html
답변
AppCompatActivity
Android 지원 appcompat 라이브러리 출시 이후 Android-SDK 에 도입되었습니다 .
AppCompatActivity
의 직접적인 자식 클래스 인 FragmentActivity
지원 V4와의 직접적인 부모 클래스의 ActionBarActivity
.
AppCompatActivity
지원 라이브러리 조치 표시 줄 기능 을 사용하는 활동의 기본 클래스입니다 .
ActionBar
활동에 대한이 클래스를 확장하고 활동 테마를 Theme.AppCompat 또는 유사한 테마 로 설정하여 API 레벨 7 이상 에서 실행할 때 활동 에을 추가 할 수 있습니다 .
v7 appcompat 라이브러리 지원과 관련하여 Action Bar 사용자 인터페이스 디자인 패턴에 대한 지원이 추가되었습니다 . 이 라이브러리는 머티리얼 디자인 사용자 인터페이스 구현을 지원합니다 .
다음은 v7 appcompat 라이브러리에 포함 된 몇 가지 주요 클래스입니다.
ActionBar
-작업 표시 줄 사용자 인터페이스 패턴의 구현을 제공합니다.AppCompatActivity
– 지원 라이브러리 조치 표시 줄 을 사용하는 활동의 기본 클래스로 사용할 수있는 애플리케이션 활동 클래스를 추가합니다. 구현 .AppCompatDialog
-AppCompat 테마 대화 상자 의 기본 클래스로 사용할 수있는 대화 상자 클래스를 추가합니다 .ShareActionProvider
-작업 표시 줄에 포함될 수있는 표준화 된 공유 작업 (예 : 이메일 또는 소셜 응용 프로그램에 게시)에 대한 지원을 추가합니다.
Android Support Libraries 를 다운로드 한 후이 라이브러리는 / extras / android / support / v7 / appcompat / 디렉토리에 있습니다.
답변
이전에는 AppCompat
이제 더 이상 사용되지 않는 ActionBarActivity
클래스 를 통해서만 진입 할 수 있었습니다 . 불행히도 이것은 세트 활동 계층 구조를 사용하도록 강요하여 사용을 PreferenceActivity
불가능하게했습니다.
자세한 내용은 chris banes의 지원 라이브러리 -v22-1-0 을 참조하십시오.
답변
안드로이드 지원 라이브러리 22.1의 최신 릴리스는를 ActionBarActivity
선호 하지 않으며 API 레벨 7 이상으로 시작하는 모든 장치에 AppCompatActivity
단일 일관성 ActionBar
을 제공합니다.