3

휴대 전화와 태블릿 용 앱을 작성해야하며 둘 다 동일한 프로젝트를 사용하고 싶습니다. 그것은 호환성 라이브러리의 사용 재사용 가능한 코드를 작성하는 것이 좋습니다 것 같습니다.호환성 팩 및> 벌집이 포함 된 조각

둘 모두에 대해 동일한 Fragment 클래스를 공유 할 수 있습니까?

저는 프리 허니컴 활동과 포스트 벌집에서 앱을 "포크 (fork)"하고 동일한 조각 클래스를 재사용하는 시작 활동에 대해 생각하고 있습니다. 사실은 android.app.Fragment를 포함하면 조각이 FragmentActivity 및 viceversa에서 사용할 수 없게됩니다. FragmentActivities 만 사용할 수는 있지만 액션 바를 사용할 수 없습니다.

어떻게 하시겠습니까?

답변

0

here의 용액이 적절하지 않은 것으로 보인다. 연락처에 대한 문제는 더 이상 사용되지 않지만 여전히 컴파일 할 수있는 클래스가 있다는 것입니다. 조각을 사용하면 android.app.Fragment를 참조하면 해당 클래스를 sdk < 3.0으로 컴파일 할 수 없습니다. 반면에 import android.support.v4.app.Fragment를 사용하면 허니 콤을 컴파일 할 수 없습니다. 할 수있는 최선의 것 같지 않은 벌집에서도 지원 lib를 계속 사용하십시오.)

나는 두 개의 서로 다른 프로젝트가 두 개의 서로 다른 프록시 구현을 노출시킴으로써 만 관리 할 수있었습니다. 각 SDK에 대해 올바른 구현을 사용합니다. 그것은 당신이 FragmentTransaction, FragmentManager 등에 대한 프록시를 만들어야하기 때문에 보이는 것처럼 간단하지 않습니다.

그것은 나를 위해 일했으나 조각이있는 설정에서는 작동하지 않았습니다. 이 경우 fragment를 사용하는 xml 파일은 pre honeycomb sdk로 컴파일 할 수 없습니다.

+0

흠이 지금 작업 폰과 태블릿을위한 다양한 활동을 사용하고 android.support.v4.app.Fragment에서 같은 조각을 사용하는 것 같다. ActionBar 코드는 태블릿의 활동에 의해서만 관리됩니다. min_sdk = 7 및 target_sdk = 13을 사용하면 sdk를 사용하여 13 libs가 트릭을 수행합니다! 모두에게 감사드립니다. – DeliriumTremens

+0

하지만 이것은 honeycomb에서도 support lib를 사용하고 있다는 것을 의미합니다. 맞습니까? 그리고 설정은 어떻습니까? 어떻게 두 개의 분리 된 lib를 사용하지 않고 두 개의 서로 다른 구현을 할 수 있습니까? – kingston

+0

나는 벌집 (honeycomb)에서도 지원 라이브러리를 사용하기 만하면 잘 작동하는 것 같습니다. XML 내부가 아닌 코드 내부에서만 조각을 관리합니다. – DeliriumTremens

0

예 둘 모두에 대해 동일한 Fragment 클래스를 공유 할 수 있습니다. 전화로 액션 바 코드를 건드리고 싶지는 않습니다 (허니 콤 이전). 허니컴 +에 대한 단편에서 사용하는 어댑터 클래스에서 액션 바 코드를 단순히 숨기는 것이 쉬운 방법입니다. 대답은 here입니다.

당신이 할 수있는 한 가지는 메뉴, 메뉴 -v11 등과 같은 버전/크기 특정 리소스를 사용하여 태블릿의 작업 표시 줄이나 기본 메뉴 팝업에 메뉴 항목을 추가하는 것입니다. 전화.

0

ActionBarSherlock은 Google의 자체 호환성 라이브러리에서 통합 및 빌드 할 수있는 호환성 라이브러리이지만 사용할 수있는 작업 모음 및 조각과 기타 좋은 것들에 대한 하위 호환성을 제공합니다.

API 13+에서 제공하는 기본 ActionBar 클래스를 사용하므로 "forks"에 코드를 다시 사용할 수 있어야합니다. 그렇지 않으면 많이 포크 할 필요가 없습니다.

웹 사이트의 찾아보기를 가진 가치

...