[android] Fragment와 FragmentActivity의 차이점은 무엇입니까?
내 질문의 주요 차이점 무엇 떨어져 명백한 상속의 차이로부터 Fragment
그리고는 FragmentActivity
? 각 수업이 어떤 시나리오에 가장 적합합니까? 이 두 클래스가 왜 존재하는지 이해하려고 노력 중입니다 …
답변
A Fragment
는의 섹션으로 다음과 Activity
같습니다.
- 자체 수명주기
- 자체 입력 이벤트를 수신
- 를
Activity
실행 하는 동안 추가하거나 제거 할 수 있습니다 .
A는 Fragment
항상에 포함되어야합니다 Activity
.
Fragments
HoneyComb (3.0) 이전의 API의 일부가 아닙니다. Fragments
HoneyComb 이전의 플랫폼 버전을 대상으로하는 앱에서 사용 하려면 지원 패키지 를 프로젝트 에 추가하고를 사용하여을 FragmentActivity
보유해야합니다 Fragments
. FragmentActivity
클래스 처리를위한 API를 가지고 Fragments
반면, Activity
클래스, 벌집 이전에,하지 않습니다.
프로젝트가 HoneyComb 이상을 대상으로하는 경우을 (를) 사용 Activity
하지 않아야 FragmentActivity
합니다 Fragments
.
일부 세부 사항 :
android.app.Fragment
와 함께 사용하십시오 Activity
. android.support.v4.app.Fragment
와 함께 사용하십시오 FragmentActivity
. 지원 패키지 Fragment
를 추가하지 마십시오 Activity
. 예외가 발생합니다.
물건은 조심하려면 다음 FragmentManager
과 LoaderManager
FragmentActivity에 대한 별도의 지원 버전이 있습니다 :
(HoneyComb 이상) Fragment
에서를 사용하는 경우Activity
getFragmentManager()
얻을android.app.FragmentManager
getLoaderManager()
얻을android.app.LoaderManager
pre-HoneyComb Fragment
에서를 사용하는 경우 다음으로 FragmentActivity
전화하십시오.
getSupportFragmentManager()
얻을android.support.v4.app.FragmentManager
.getSupportLoaderManager()
얻을android.support.v4.app.LoaderManager
그렇게 하지 않는다 할
//don't do this
myFragmentActivity.getLoaderManager();
//instead do this:
myFragmentActivity.getSupportLoaderManager();
또는
//don't do this:
android.app.FragmentManager fm = myFragmentActivity.getSupportFragmentManager();
//instead do this:
android.support.v4.app.FragmentManager fm = myFragmentActivity.getSupportFragmentManager()
조각을 포함 Activity
해야하지만 Activity
레이아웃의 일부일 필요는 없습니다 . 자체 UI가없는 활동의 보이지 않는 작업자로 사용할 수 있습니다.
답변
FragmentActivity는 프래그먼트를 지원하는 클래식 액티비티입니다. 따라서 FragmentActivity는 Fragment가 Activity에 첨부 될 때 필요합니다.
Well Fragment는 Activity의 기본 동작을 복사하는 좋은 구성 요소이며 여전히 Activity와 같은 독립형 응용 프로그램 구성 요소는 아니며 작동하려면 Activity에 연결해야합니다.
봐 여기에 자세한 내용은
답변
FragmentActivity를 Fragments를 지원할 수있는 일반 Activity 클래스로 생각하십시오. 벌집 이전에는 활동 클래스가 단편을 직접 지원할 수 없었으므로 단편을 사용하는 활동에 필요합니다.
대상 배포가 Honeycomb 이상이면 활동을 대신 확장 할 수 있습니다.
또한 프래그먼트는 ‘서브 액티비티’로 간주됩니다. 활동이 없으면 존재할 수 없습니다. 항상 조각을 하위 활동으로 생각하면 좋을 것입니다. 따라서 활동은 부모이고 조각은 자식과 같은 상징적 관계입니다.
답변
FragmentActivity는 Fragment를 포함하는 임시 활동입니다. 이 몇 마디로 안드로이드 3.0 (HoneyComb)을 통해 안드로이드 팀이 안드로이드 SDK에 삽입 한 주요 중요한 변경 중 하나를 설명했습니다.
이러한 새로운 개념으로 코드와 레이아웃이보다 유연하고 유지 관리 가능해집니다. Google에서 검색하면 많은 예가 있습니다.