如何在布局中间制作小部件以填充Android中的父级

时间:2013-01-04 21:08:13

标签: android android-linearlayout fill

我有Android布局问题。我有一个显示器,我将一些文本放在一个视图的中间,顶部有一个标题,底部有三个按钮。我遇到的麻烦是让TextView(在ScrollView中)伸展以填满可用的屏幕空间。如果我将ScrollView的layout_height设置为“fill_parent”,则会将三个按钮从屏幕底部推出。如果我将它设置为“wrap_content”,它只能支持放入TextView的文本所需的大小。

以下是我正在使用的布局的XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<LinearLayout android:orientation="horizontal"
    android:gravity="top"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >
    <ImageView android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher">
    </ImageView>
    <TextView android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        style="@android:style/TextAppearance.Large"
        android:text="@string/meetingdetail" />
</LinearLayout>

<ScrollView
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent">
    <TextView android:id="@+id/meeting"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        style="@android:style/TextAppearance.Medium" />
</ScrollView>

<Button android:id="@+id/navigation"
    android:text="@string/naviation"
    android:onClick="meetingInfoOnClick"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

<Button android:id="@+id/mapsingle"
    android:text="@string/mapsingle"
    android:onClick="meetingInfoOnClick"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

<Button android:id="@+id/goback"
    android:text="@string/goback"
    android:onClick="meetingInfoOnClick"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

</LinearLayout>

有人可以建议哪些最适合使用TextView的ScrollView填充可用空间但仍允许出现三个按钮?

2 个答案:

答案 0 :(得分:2)

将ScrollView的高度设置为 0dp ,将其权重设置为 1

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1" >

<TextView android:id="@+id/meeting"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    style="@android:style/TextAppearance.Medium" />
</ScrollView>

但是,如果您不打算将多个视图设置为可滚动,则应删除ScrollView并使用:

   android:scrollbars="vertical"
由于TextView本身可以滚动,因此TextView上的

属性。

答案 1 :(得分:0)

只需将ScrollView代码替换为..

<ScrollView
android:layout_width="fill_parent" 
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView android:id="@+id/meeting"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    style="@android:style/TextAppearance.Medium" />
</ScrollView>

它会正常工作,如果你还有任何问题,请告诉我。如果作品然后接受答案。