baselineAligned를 false로 설정하면 선형 레이아웃의 성능이 어떻게 향상됩니까?
방금 xml로 UI를 구축하고 있었는데 ListView의 성능을 향상시키기 위해 Lint가 경고를 주고 Android:baselineAligned를 false로 설정하라고 했습니다.
이 경고를 추가한 린트 변경 사항에 대한 문서는 다음과 같습니다.
레이아웃 성능:성능 향상을 위해 Android:baselineAligned="false"를 설정해야 하는 가중치가 있는 선형 레이아웃을 찾고 성능 문제를 일으킬 수 있는 중첩 가중치가 있는 경우도 찾습니다.
누가 이것이 왜 성능을 향상시키는지, 특히 체중과 관련이 있을 때 설명할 수 있습니까?
설정별android:baselineAligned="false"
앱 레이아웃이 하위 기준선을 정렬하기 위해 수행해야 하는 추가 작업을 방지하고 있습니다. 이는 성능을 확실히 향상시킬 수 있습니다. (UI에서 불필요한 작업 감소 => 성능 향상)
어떻게.android:baselineAligned="false"
Help. 정답이 아니라 개념을 얻는 데 도움이 될 수 있습니다.
수평 선형 레이아웃에서 3개의 항목(아이콘, 텍스트, 버튼)을 수직으로 중앙에 배치할 수 있었습니다.
이 방법은 간단해 보이지만 실제로는 Android: gravity="center_delayout"을 선형 레이아웃 속성으로 지정하는 것만으로는 충분하지 않습니다. 아이콘은 가운데에 있지만 텍스트와 버튼은 그렇지 않습니다.이는 (아마도) 텍스트에 기준선이 있고 중심화 알고리즘이 '실제' 수직 중심 대신 이를 사용하기 때문입니다.하지만 더 나쁜 것은 버튼(텍스트 옆에 오는)이 텍스트의 기준선을 사용하여 중앙에 배치된다는 것입니다.
선형 레이아웃에서 Android:baselineAligned="false"를 지정하면 이 기능이 해제되고 모든 것이 올바르게 중앙에 배치됩니다.
// Baseline alignment requires to measure widgets to obtain the
// baseline offset (in particular for TextViews). The following
// defeats the optimization mentioned above. Allow the child to
// use as much space as it wants because we can shrink things
// later (and re-measure).
if (baselineAligned) {
final int freeSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
child.measure(freeSpec, freeSpec);
}
언급URL : https://stackoverflow.com/questions/9319916/how-does-setting-baselinealigned-to-false-improve-performance-in-linearlayout
'programing' 카테고리의 다른 글
VBA 파일을 사용자 양식으로 끌어다 놓아 파일 이름 및 경로 가져오기 (0) | 2023.08.11 |
---|---|
Angular 4 프로젝트에서 실행 중인 원고 버전을 확인하는 방법 (0) | 2023.08.11 |
SELECT DISTINCT ON 쿼리를 Postgresql에서 MySQL로 변환하는 중 (0) | 2023.08.11 |
어떻게 하면 제 프로젝트를 깃허브에서 끌어낼 수 있을까요? (0) | 2023.08.11 |
jquery를 사용하여 입력 필드의 특수 문자를 차단하거나 제한하려면 어떻게 해야 합니까? (0) | 2023.08.11 |