안드로이드를 사용하는 동시에 작업하고 학습하면서 레이아웃 전환 기능에서 이상한/예기치 않은/잘 설명되지 않은 동작을 발견했습니다. 아직 답변을 찾지 못했습니다.안드로이드 레이아웃 한정자 사용
첫 번째로 설명서에서 알 수 있듯이 layout-w320dp
및 layout-h320p
과 같이 너비와 높이에 대한 한정자는 240, 320, 480, 600 등의 표준 값을 사용해야합니다. documentation에서도 효과적으로 사용 가능한 공간을 고려한다고 언급했지만 높이에 어떤 영향을 미치는지에 대해서는 언급하지 않습니다. 예를 들어 320dp 대형 에뮬레이터 화면에서 getResources().getConfiguration().screenHeightDp
을 호출하면 사용 가능한 높이는 295입니다. 따라서 layout-h320p
을 사용하면 320dp 화면에서 제대로 활성화되지 않으므로 정확하지 않습니다.
작은 화면에 적응하는 데있어 우려되는 점은 충분한 너비가없는 것과 높이가 충분하지 않은 것의 두 가지 시나리오를 처리 할 수있는 능력이 있어야한다는 것입니다. 내가 뭘 찾았는지 내 상황에 맞는 레이아웃을 선택하도록 에뮬레이터를 강요 할 수 없다는 것입니다. layout-w320p
폴더와 layout-h240p
폴더가 있습니다. 사용 가능한 높이가 320p이고 사용 가능한 너비가 480p 인 에뮬레이터에서 실행하는 경우 layout-w320p
이로드됩니다. 그러한 두 가지 사례를 어떻게 균등하게 대우 할 수 있습니까? 너비와 높이 한정자를 모두 지정할 수는 없습니다.
셋째, 2.2까지 앱을 지원하려면 "클래식"한정자 (소, 중, 대형, x 대형)를 제외하고는 다른 화면을 지원할 수있는 방법이 있습니까?
편집 : 지원하려는 최소 버전이 2.2이므로 중소/대형/xlarge 한정자 패턴을 사용했습니다. 또한 port
및 land
한정자를 사용하며 레이아웃에서 Android의 의사 결정이 훨씬 더 명확하지만 앞서 언급 한 문제가 남아 있습니다.