2013-04-10 2 views
1

위의 8 개 API와 호환되어야하는 응용 프로그램을 개발 중입니다. API 버전이 11 이상인 경우 ActionBar 제목에 일부 텍스트가 표시되고 API < 11이면 텍스트가 TitleBar에 표시됩니다. 이것은 Android에서 자동으로 처리됩니다.ActionBar 아이콘 API 제거 <11

API가 11 이상이면 ActionBar 아이콘을 제거하여 텍스트 공간을 확보하고 싶습니다. 그러나 Eclipse는 내 최소 API (8)가 너무 낮다고 말하는 getActionBar()으로 전화하지 않습니다.

어떻게 우회 할 수 있습니까?

답변

6

당신은 귀하의 모든 액션 바 호출을 래핑 할 수 있습니다 : 당신이 점점 오류가 가능성이 린트 경고입니다

if (android.os.Build.VERSION.SDK_INT>=android.os.Build.VERSION_CODES.HONEYCOMB) { 
    // call something for API Level 11+ 
} 

을, 그리고 당신이 그렇게, 환경 설정에 가서 경고에 그것의 수준을 감소 할 수 있어야한다 귀하의 코드가 여전히 컴파일됩니다.

또한 당신은

if (android.os.Build.VERSION.SDK_INT < 11) 
{ 
     //your code 
} 

하여 안드로이드 버전을 확인할 수 있습니다 (11)

+2

감사합니다, 매력처럼 일 했어요! 나는 이것을 몇 분 안에 올바른 대답으로 받아 들일 것이다. (StackOverflow 한계 ...) –

2

API보다 낮은 장치에 액션 바를 얻을 수 ActionBarSherlock를 사용으로 볼 수 있었다 그러나 나는 실제로 당신이 사용하는 조언을 것 이 android support package은 하위 버전의 기능을 지원하기 위해 Google 자체에서 제공합니다. 그것을 확인하십시오

+0

고마워, 실제로 내 프로젝트에이 v4 지원 라이브러리가있다. 하지만 API가 <11 인 기기에서 ActionBar를 지원할 수 있습니까? 나는 ActionBarSherlock 만 가능하다고 생각했다. –

+0

@SzymonPrzedwojski 죄송합니다. 내 잘못이야. 그러나 Google 조언은 * ActionBar는 라이브러리에서 지원하지 않습니다. 그러나 옵션 메뉴를 만들 때 액션 바에 추가 할 항목 (Android 3.0 이상)을 선언 할 수 있습니다. MenuCompat.setShowAsAction() 메소드로 그렇게 할 수 있습니다. * Google Apps에서 ActionBar를 처리하는 방법입니다. –