Android - LinearLayout 간략 설명
안드로이드를 거의 사용하지 않아서 간략 기록을 남깁니다.
가령, 50:50으로 컨트롤 2개가 화면을 분할하고 싶은 경우 다음과 같은 식으로 처리할 수 있습니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="2"
>
<Button
android:text="Test1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/test1"
android:layout_weight="1"
/>
<Button
android:text="Test2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/test2"
android:layout_weight="1"
/>
</LinearLayout>
참고로 이때 다음과 같이 layout 수치를 지정하면,
android:layout_height="100"
오류가 발생합니다.
Android - error: Error: Integer types not allowed (at 'layout_height' with value '100')
이에 대해서는 다음의 글에서 설명하듯이,
error: Error: Integer types not allowed (at 'layout_height' with value '10')
; https://stackoverflow.com/questions/27819194/error-error-integer-types-not-allowed-at-layout-height-with-value-10
단위를 적용해 주면 된다고 합니다.
android:layout_height="100dp"
근데... 단위가 너무 많군요. ^^;
px, in, mm, pt, dp or dip, sp라고.
참고로, layout_weight가 꼭 비율을 의미하지는 않는 것 같습니다. 일례로 다음과 같이 하면,
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="5">
<Button
android:text="PC On/OFF"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:id="@+id/btnTurnPCOnOff"
android:layout_weight="4"
/>
<Button
android:text="Refresh"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:id="@+id/btnRefresh"
android:layout_weight="1"
/>
</LinearLayout>
4/5와 1/5 영역으로 나누어질 것을 기대하게 되는데 약간 좀 다르게 보이는군요. ^^
그나저나, 이것도 체계적으로 좀 보고 머릿속에서 정리를 해야 하는데 시간 상 그때그때 땜방만 하게 되니.
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]