<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="3dip" android:background="@color/darkslategray" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/title" android:layout_gravity="center" /> <Button android:id="@+id/bt_search" android:layout_width="wrap_content" android:layout_height="40dp" android:layout_gravity="left|center_vertical" android:text="Q" /> <Button android:id="@+id/bt_upload" android:layout_width="wrap_content" android:layout_height="40dp" android:layout_gravity="right|center_vertical" android:text="@string/upload" android:textSize="10dp" /> </FrameLayout> <FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@color/dimgray" android:padding="3dip"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/symbol" android:layout_gravity="center" /> <Button android:id="@+id/bt_gravity" android:layout_width="wrap_content" android:layout_height="40dp" android:layout_gravity="right|center_vertical" android:text="@string/gravity" android:textSize="10dp" android:paddingLeft="16dp" android:paddingRight="16dp" /> </FrameLayout> <FrameLayout android:layout_width="fill_parent" android:layout_height="300dp" android:layout_gravity="bottom" > <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" /> <TextView android:id="@android:id/empty" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/empty" android:gravity="center" android:layout_marginBottom="20dip" /> </FrameLayout> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:background="@color/dimgray" android:paddingTop="3dp"> <Button android:id="@+id/bt_menu1" android:layout_width="wrap_content" android:layout_height="40dp" android:text="menu1" android:textSize="10dp" /> <Button android:id="@+id/bt_menu2" android:layout_width="wrap_content" android:layout_height="40dp" android:text="menu2" android:textSize="10dp" /> <Button android:id="@+id/bt_menu3" android:layout_width="wrap_content" android:layout_height="40dp" android:text="menu3" android:textSize="10dp" /> <Button android:id="@+id/bt_menu4" android:layout_width="wrap_content" android:layout_height="40dp" android:text="menu4" android:textSize="10dp" /> <Button android:id="@+id/bt_menu5" android:layout_width="wrap_content" android:layout_height="40dp" android:text="menu5" android:textSize="10dp" /> </LinearLayout> </LinearLayout>--------------------------------------------------------------------------------------------------------------------
ListView를 감싸고 있는 FrameLayout의 height를 300dp로 고정시키지 않고 원하는 화면을 낼수있나 궁금합니다.
height를fillparent로 하면 빝에 버튼들이 들어있는 LinearLayout이 표현되지 않더군요... ㅠㅠ 전 fillparent로 해도 밑에 추가되는
View나 Layout이 있는경우 그만큼 위에 위젯이 줄어드는줄 알고있었는데 안되네요... 300dp로 고정해놓고 했더니 처음에 AVD는 정상
출력이됬으나 AVD 해상도를 변경하니 Button을 가지고있는 linearlayout이 표현되지 않습니다 ㅠㅠㅠㅠㅠㅠ
좋은 방법이 없을까요?
원하시는 바를 정확히는 모르겠으나
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="bottom">
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<TextView
android:id="@android:id/empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="empty"
android:gravity="center"
android:layout_marginBottom="20dip" />
</FrameLayout>
이런식으로 처리하면 될거 같은데요
두 분 답변 감사합니다 Relative레이아웃은 지양해야한다고해서 안쓰려고 했던거거든요...
원하는 바는 사진 첨부하겠습니다.
문제는 맨밑에께 안보이던거 였습니다 ^^
android:layout_height
=
"300dp" 을 위의 파란 코드로 바꿔주심 될거에요.
FrameLayout도 LinearLayout의 하위항목이니까 layout_weight 속성이 동작합니다.
그러면 중간에 있는 FrameLayout이 화면 크기에 맞춰서 늘어날거에요.
layout_weight는 LinearLayout의 하부항목들이면 적용할 수 있습니다.
위에서 사용한 FrameLayout도 LinearLayout의 하위 항목이므로 적용이 됩니다.
그렇다고 자식의 자식까지 다 되는것은 아니구요. 예를 들면 아래와 같은 경우엔 최상위 LinearLayout의 하위 항목인 FrameLayout과 Button에 layout_weight속성을 줄 수가있죠. FrameLayout의 하위 항목인 TextView는 이 속성이 먹히지 않습니다.
<LinearLayout>
<FrameLayout>
<TextView>
</TextView>
</FrameLayout>
<Button>
</Button>
</LinearLayout>
맨아래 리니어 레이아웃 -> <LinearLayout android:id="@+ll_id/android:layout_alignParentBottom = "true" 하고 height를 먼저 고정값으로 준다음에>
위에 붙일 레이아웃이 FrameLayout이라면 그 속성에 android:layout_below="ll_id" 주시면됩니다.
</RelativeLayout>