baselineAligned를 false로 설정하면 LinearLayout의 성능이 어떻게 향상됩니까?
방금 xml로 UI를 작성하고 있었고 Lint는 경고를 표시하고 android : baselineAligned를 false로 설정하여 ListView의 성능을 향상 시키라고 말했습니다.
이 경고를 추가 한 Lint 변경에 대한 문서는
레이아웃 성능 : 성능 향상을 위해 android : baselineAligned = "false"를 설정해야하는 가중치가있는 LinearLayouts를 찾고 중첩 된 가중치가있어 성능 문제를 일으킬 수있는 경우도 찾습니다.
누군가 체중이 관련 될 때 왜 이것이 성능을 향상시키는 지 설명 할 수 있습니까?
을 설정 android:baselineAligned="false"
하면 앱의 기준선을 맞추기 위해 앱의 레이아웃이 수행해야하는 추가 작업을 방지 할 수 있습니다. 분명히 성능을 향상시킬 수 있습니다. (UI에서 불필요한 조작이 적을수록 성능이 향상됨)
어떻게 android:baselineAligned="false"
도와주세요. 대답은 아니지만 개념을 얻는 데 도움이 될 수 있습니다.
방금 가로 LinearLayout에서 세로로 가운데에 3 개의 항목 (아이콘, 텍스트, 버튼)을 가져 왔습니다.
이것은 간단 해 보일 수 있지만 실제로 LinearLayout 속성으로 충분하지 않은 경우 android : gravity = "center_vertical"을 지정하면 아이콘이 중앙에 위치하지만 텍스트와 버튼은 그렇지 않습니다. 텍스트에 기준선이 있고 중심 알고리즘이 '실제'수직 중심 대신 텍스트를 사용하기 때문입니다. 그러나 더 나쁜 것은 텍스트 옆에있는 버튼이 텍스트의 기준선을 중심으로한다는 것입니다!
LinearLayout에 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);
}
'IT story' 카테고리의 다른 글
파일을 특정 개정으로 재설정하거나 되돌리려면 어떻게해야합니까? (0) | 2020.05.05 |
---|---|
for 루프 내에서 JavaScript 클릭 핸들러가 예상대로 작동하지 않음 (0) | 2020.05.05 |
CSS : 테이블 셀을 자르지 만 가능한 한 적합 (0) | 2020.05.05 |
파이썬과 IPython의 차이점은 무엇입니까? (0) | 2020.05.05 |
PHP 7 이전에“문자열, 문자열이 주어져야한다”를 어떻게 해결합니까? (0) | 2020.05.05 |