2011-12-27 3 views
5

Android 3.x 용 앱을 만들 때 기본적으로 장치가 가로로 놓여 있는지 확인하여 여러 프래그먼트를 나란히 배치 할 수 있는지 확인할 수 있습니다. 하지만 이것은 기본적으로 기기가 태블릿임을 보장했기 때문입니다.Android 멀티 프래그먼트 레이아웃을 사용해야하는지 결정합니다.

호환성 라이브러리 및 Android 4.0의 도입으로, 내가 옆에있는 조각으로 벗어날 수 있는지 또는 표준 조각으로 되돌릴지를 결정하는 '좋은'방법으로 생각할 것이라고 생각하지 않습니다. '화면 당.'

NewsReader 예제 앱에서 Google은 해상도가 2 단편 레이아웃을 지원해야하는지 여부에 대한 부울 값이있는 모든 공통 해상도에 대한 특별 값 파일을 가지고 있지만이 방법은 좋지 않은 것으로 생각됩니다. 내가 생각할 수있는 유일한 방법은 화면의 크기를 확인하는 것입니다 (태블릿인지 또는 레이아웃을 망칠만큼 크지 않은지). 그런 다음 방향을 확인하십시오.

그래서 누구나 쉽게 이것을 효율적으로 확인할 수있는 방법이 있다면 알려 주시기 바랍니다.

답변

6

당신은 실제로 다음과 같은 사용하여 화면 크기 종류 (소형, 보통, 대형, 등)를 볼 수 있습니다

을 과 일치합니다 어느
Configuration.SCREENLAYOUT_SIZE_SMALL 
Configuration.SCREENLAYOUT_SIZE_NORMAL 
Configuration.SCREENLAYOUT_SIZE_LARGE 
Configuration.SCREENLAYOUT_SIZE_UNDEFINED 

은 그럼 당신은

getResources().getConfiguration().orientation 

을 사용하여 방향을 확인할 수 있습니다 다음과 같은 가능성이와

Configuration.ORIENTATION_PORTRAIT 
Configuration.ORIENTATION_LANDSCAPE 
Configuration.ORIENTATION_SQUARE 
Configuration.ORIENTATION_UNDEFINED 

당신은 본질적으로 공간이 화면 크기와 방향에 따라 허용로 조각을 추가하여 여러 뷰를 시뮬레이션 할 수 있습니다.

+0

Sweet! 이것은 내가 할 계획이었던 것보다 훨씬 좋았습니다 ... 나는이 유형의 필드가 존재했음을 기억해야한다고 생각합니다. –

+0

하하, 나는 그것이 어떻게되는지 압니다. 또한 타겟팅 한 대상이 8 개 였기 때문에 SCREENLAYOUT_SIZE_XLARGE이 (가) 9에 추가되어 타겟팅 대상을 상세하게 지정할 수 있습니다. –

3

2 개의 레이아웃을 만듭니다. 하나는 조각을위한 하나의 컨테이너 (ViewGroup)로 만들고, 두 번째 레이아웃은 2 개의 컨테이너를 나란히 배치합니다. 나는 다중 조각 (2 컨테이너) 레이아웃을 원하는 시나리오를 지정하기 위해 Android의 폴더 구조를 리소스에 사용합니다. 그런 다음 코드에서 두 번째 컨테이너의 존재 여부를 확인하여 다중 패널인지 여부를 확인하십시오.

isMultipanel = false; 
ViewGroup container2 = findViewById(R.id.container_2); 
if (container2 != null) { 
    isMultipanel = true; 
} 

타블렛이나 전화로 생각하지 말고 두 패널에 충분히 넓거나 넓게 봅니다.

일반적인 크기의 장치 (< = 5 ")와 대형 (5"- 7 ") 크기의 멀티 패널을 원할하지만 풍경이있는 경우에만 항상 xlarge (> 7")로 설정하려면 멀티 패널 레이아웃 파일 :

  • 레이아웃 땅
  • 레이아웃 큰 땅
  • 레이아웃 초대형

그럼 당신은 안드로이드 때문에 코드 크기 검사를 할 필요가 없습니다 이미이 문제를 처리하고 있습니다. 즉, 다음 중 하나에 대해 확인할 수 있습니다 int를 돌아갑니다

getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK 

:

+0

나는이 옵션을 보았지만 정상적인 방법 (좋든 나쁘 든)을하지는 않습니다. 빈 선형 레이아웃으로 시작하여 필요한만큼 많은 조각을 추가합니다 (최대 2 개).그리고 내가 갈 수있는 여러 레이어의 옵션이있을 것이므로, 다중 조각 뷰의 오른쪽에있는 조각 (fragment)의 옵션을 누르면 왼쪽 조각이 떨어져서 (뒤쪽 스택으로) 떨어지도록 만들었습니다. 오른쪽 조각이 왼쪽으로 스쿠 츠 (scoot)되고, 새로운 조각이 오른쪽에 추가됩니다. 조각을 처음부터로드 할 수 없기 때문에 이것은 중요합니다. 어쩌면 내가 부모에게 이드를 줄 수는 있겠지만 ... –

관련 문제