AppCompatActivity
의 getFragmentManager()
은 왜 조각 관리자의 지원 버전을 반환합니까? 대신 활동을 AppCompatActivity
으로 설정하고 특히 getSupportFragmentManager()
으로 전화해야합니다. 수십 가지 다른 방법에 대해서도 마찬가지입니다. 그것은 당신이 스스로 호출 할 수있는 메소드와 "지원"버전으로 다시 브랜드화해야하는 메소드를 마술처럼 알아야한다는 불만입니다. 더 낮은 버전의 Android를 계속 지원할 때 "지원"버전 대신 "일반"버전을 사용하려는 유스 케이스가 있습니까? AppCompatActivity
이 최신 API 버전 Activity
과 구별 될 수 없다면 나에게 더 많은 의미가 있습니다. 결국 그것이 지원되는 것입니다. 그렇지 않습니까? 최신 API 버전 Activity
과 동일한 기능을 제공 하시겠습니까?AppCompativity Design
디자인 원칙이나 숨겨진 Java 제한으로 인해 그렇게 할 수 없습니까?
왜, 예를 들어, 지원 라이브러리가 자신의 버전을 'android.app.FragmentManager'로 정의하게할까요? (필자는 "지원 버전이 나중의 API에서 기본 버전과 충돌"또는 "보안상의 이유"중 하나의 이유를 예측합니다. 그러나 확실하지 않습니다.) – Erhannis
@Erhannis : "지원 라이브러리가있는 이유는 무엇입니까? android.app.FragmentManager의 자체 버전을 정의 하시겠습니까? " - 라이브러리를 사용하는 앱이 API 레벨 11 이상에서 충돌하고 'android.app.FragmentManager'의 구현이 충돌하기 때문입니다. – CommonsWare
흠. ClassLoaders 및 리플렉션을 사용하여 주위에 까다로운 방법이 없다면 놀랄 것입니다.하지만 그만 두겠습니다. 나에게 발생하는 다른 해결책은 AppCompatActivity 및 Activity11 또는 둘 다 자체의 FragmentManager 버전과 함께 getFragmentManager()를 구현하는 것 모두에 대해 메소드를 추가하는 대신 Activity를 서브 클래 싱하는 것입니다. 나는 그런 접근법을 좋아한다고 말할 수는 없다. 귀찮아. 좋아, 나는 양보한다. 감사. 나는 여전히 모든 "지원"방법을 좋아하지 않는다. 그것도 너무 편치 않습니다. – Erhannis