나는이 LinearLayout
내부 a를 ScrollView
가지고 android:layout_height="fill_parent"
있지만 전체 높이로 확장되지 않습니다 ScrollView
. 내 레이아웃은 다음과 같습니다.
level layout layout_width layout_height
1 LinearLayout fill_parent fill_parent
2 LinearLayout fill_parent wrap_content
3 (some irrelevant stuff)
2 ScrollView fill_parent fill_parent <-- this expands full height
3 LinearLayout fill_parent fill_parent <-- this does not (has orientation=vertical)
(following stuff probably are irrelevant, but just to be sure:)
4 TextView fill_parent fill_parent
4 LinearLayout fill_parent wrap_content
나는이 것을 볼 수 LinearLayout
의 전체 높이를 확장하지 않는 ScrollView
때문에 이클립스에서 Android Layout Editor
, 나는 선택하면 ScrollView
이 아래로 화면을 채우는 빨간색 테두리로 강조 표시됩니다 (의 개요 패널)하지만 난 선택할 때 LinearLayout
의 하이라이트 화면 하단으로 확장되지 않습니다. 그렇게하려면 어떻게해야합니까?
내가 달성하려는 효과는 텍스트와 그 아래에 버튼이있는 것입니다 ( LinearLayout
레벨 4 안에는 버튼이 있습니다). 텍스트는 스크롤 막대가 필요할 정도로 커질 수 있습니다.이 경우 버튼을 보려면 사용자가 아래로 스크롤해야합니다. 텍스트가 스크롤 막대에 비해 충분히 크지 않은 경우 LinearLayout
버튼 이 포함 된 버튼을 화면 하단에 붙이기를 원합니다 .
처음에는 전체 XML을 게시해서는 안된다고 생각했습니다. 왜냐하면 일반적으로 질문에 엄청난 양의 코드가 표시되는 단점이기 때문입니다. 그러나 필요할 수 있으므로 전체 레이아웃이 있습니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/video_layout"
android:focusable="true"
style="@style/VideoLayout">
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:foreground="@android:drawable/ic_media_play"
android:foregroundGravity="center">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/video_thumb"
android:padding="5dip"
android:background="#454545"/>
</FrameLayout>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusable="true"
style="@style/VideoTitle"
android:id="@+id/video_title"
android:layout_gravity="center"
android:layout_weight="1"/>
</LinearLayout>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<!-- this ScrollView expands the full height of the screen.
However, the next LinearLayout does not expand the full height of the ScrollView -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:layout_gravity="fill"
android:orientation="vertical"
android:id="@+id/info_layout">
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/info_body"
style="@style/InfoText"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
style="@android:style/ButtonBar">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:text="@string/button_readmore"
android:id="@+id/btn_read_more"/>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
현재 android:layout_gravity="bottom"
문제에 의지 LinearLayout
하여 버튼을 화면 하단에 붙였습니다. 그러나 그것은 또한 텍스트를 화면의 맨 아래에 붙게 만듭니다.
업데이트 : 스크래치 , 스크롤 할 수 없게 android:layout_gravity="bottom"
만듭니다 ScrollView
. 다른 아이디어?
android:weight
.