2013-02-11 2 views
2

글쎄, 나는 다른 안드로이드 버전에 대해 동일한 응용 프로그램에서 다른보기를로드 할 수 있는지 궁금 해서요. 의도에 따라 안드로이드의 서로 다른 버전에 대해 정의 된 두 개의 개별 활동 중 하나를 호출 할 수있는 활동을 만들 수 있다고 생각했습니다. 나는 하나의 활동에서 아이스크림 샌드위치에서만 사용할 수있는 액션 바를 사용했고, 다른 사람들은 이전의 안드로이드 릴리스에서 뷰를 사용할 수 있다고 가정합니다.안드로이드 버전에 따라 다른보기로드 중

답변

1

1) 다음 다른 레이아웃 xml 파일을 만들 수있는 다른 안드로이드 버전에 따라 다른 레이아웃을로드 할 후 활동, 예를 들어 경우 this

2) 코드 아래

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.GINGERBREAD) { 
    // only for android older than gingerbread 
    //call setContentView with your layout 
} 

3) res-folder 안에 layout-v (version-number) 폴더로 레이아웃 할 수 있습니다. 예를 들어 SDK 11의 경우 폴더 이름은 layout-v11

0

예. res에 layout-vX 폴더를 만듭니다. 여기서 X는 버전 번호입니다 (예 : Honeycomb의 경우 11). 버전 X 이상을 사용하는 경우에는 그 안에있는 모든 파일이 레이아웃 디렉토리의 파일 버전을 덮어 씁니다. 당신이 참조 할 수 있습니다 여러 화면을 지원하는 레이아웃

0

입니다. 필요한 경우 작업 표시 줄을위한 것이므로 actionbarsherlock library을 사용하는 것이 좋습니다.

if(VERSION.SDK_... <VERSION_CODES....) 

을 할 필요가있는 예를 들어, 자원, 그래서 here 서면으로, 버전의 규정을 설정하여 :

당신은 또한 버전을 사용하는 코드의 검사를 할 수있다 (here를 읽기) API 11 이상에서 사용되면 한정자 v11을 넣습니다.

+0

여기에 prob가 있습니다. ginger_bread로 min sdk를 설정하면 액션 바 라이브러리를 계속 사용할 수 있습니까? – Paras

+0

예. 그러나 안드로이드가 아닌 라이브러리 중 하나를 사용해야합니다. 실제로 minSdk는 GB보다 훨씬 낮게 설정할 수 있습니다. 이 라이브러리와 관련된 함수, 메서드, 클래스 및 리소스의 대부분은 Sherlock (자원에 대해 "abs")으로 시작하거나 어떤 식 으로든 "sherlock"이라는 단어가 있습니다. –

+0

그래서, 당신은 행동 바에 대한 도서관을 움켜 잡고 프로젝트에 첨부 할 것을 요구하고 있다고 생각합니다. 나는 그것에 대해 생각하지 않았습니다. – Paras

관련 문제