3

minSdk = 15이고 targetSdk = 21이어야하는 앱을 만들고 있으므로 appcompat-v7 라이브러리에서 제공하는 기능을 사용하고 싶습니다.AppCompat v7 : Framework FragmentManager 또는 SupportFragmentManager를 사용해야합니까?

supportlibrary-v7을 사용할 때 getFragmentManager 또는 getSupportFragmentManager를 사용해야하는지 항상 궁금해했습니다.

이제는 작은 문제가 발생합니다. getFragmentManager를 사용할 때 (따라서 프레임 워크 조각과 fragmenttransaction을 사용할 때) 단순히 백 스택을 눌러서 백 스택을 팝핑 할 수 없었습니다. backStackCount> 0을 확인하고 수동으로 popBackStack을 수행해야했습니다. , 그렇지 않으면 나의 활동은 간단하게 끝났다. 이 문제는 v4 클래스 (getSupportFragmentManager 등)를 사용하도록 작은 응용 프로그램을 전환 할 때 해결되었습니다. 어느 쪽이 좋을지 모르겠지만 어떤 방법으로 가고 왜야하는지에 대한 가이드 라인/우수 사례를 갖고 싶습니다

따라서 내 활동은 ActionBarActivity (AppCompat-Blog-Entry에 따라)를 상속하며 새 툴바를 사용해야합니다. v4-Fragments (-Manager, -Transactions) 만 사용합니까?

나는 그것을위한 모범 사례 또는 가이드 라인을 찾지 못했습니다. 그리고이 두 가지를 결정할 때 무엇을 고려해야할지 확신 할 수 없습니다. -/

+0

내 응용 프로그램에서 동일한 문제가 있었으며 대답은 라이브러리에서 Fragments에 대해 제공하는 클래스를 사용하는 것입니다. 지원 라이브러리에서만 사용할 수있는 [FragmentPagerAdapter] (http://developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter.html)와 같은 클래스가 있으므로 모든 클래스를 사용하는 것이 현명한 방법입니다. 파편과 관련된 라이브러리를 지원하는 클래스. – eluleci

+1

사실 프레임 워크 프래그먼트와 함께 작동하는 [v13.FragmentPagerAdapter] (https://developer.android.com/reference/android/support/v13/app/FragmentPagerAdapter.html)가 있습니다. 그러나 여전히, 이것은 실제 지침이 아닙니다. 앞서 말했듯이 일관성있는 이유로 v4로 완전히 전환했습니다. – degill

답변

5

ActionBarActivity에서 활동을 상속하는 경우 항상 getSupportFragmentManager()을 사용해야합니다. 전화가 지원되는 경우 (Honeycomb 이상 실행) 자동으로 전화를 getFragmentManager()으로 전달합니다. 그렇지 않으면 호환성 구현을 사용합니다.

+0

조각 지원이 있기 때문에 appcompat-v7을 사용합니다 (API 15 이전에 단편 지원이 추가되었음을 알고 있습니다). 주된 이유는 툴바 또는 MaterialDesign-Theme처럼 API 21에 도입 된 일부 기능을 사용하기 때문입니다. 따라서 AFAIK는 appcompat-v7을 사용해야합니다. – degill

+0

이 경우'ActionBarActivity'로 가십시오. 툴바를 사용할 계획이라면 API 21 이전에는 사용할 수 없었던'setActionBar (...)'메소드가 필요할 것입니다.'setSupportActionBar (...)'를 대신 사용하십시오. – stealth

+0

맞아,'setSupportActionBar()'메서드를 사용해야한다. 그래서 기본적으로 AppCompat를 사용하기 때문에 모든 지원 방법을 사용해야합니까? – degill

관련 문제