Android EditText不会占用剩余空间

时间:2010-05-13 22:10:58

标签: android

在我的Android应用中,我有一个标签Activity。在其中一个标签中,我有两个TextView和两个EditText

第一个EditText只有一行,没关系。但是,我希望其他EditTextandroid:id="@+id/paste_code"占用剩余空间,但无论我做什么,它都只会显示一行。我不想手动设置行数,因为屏幕上适合的数字因设备而异。

这是相关代码。它嵌套在选项卡Activity的所有必要组件中。

<ScrollView
    android:id="@+id/basicTab"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        android:layout_weight="1" >
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Paste title"
            android:layout_weight="0" />
        <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:hint="@string/paste_title_hint"
            android:id="@+id/paste_title"
            android:lines="1"
            android:gravity="top|left"
            android:layout_weight="0" />
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Paste text"
            android:layout_weight="0" />
        <EditText
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:hint="@string/paste_hint"
            android:id="@+id/paste_code"
            android:gravity="top|left"
            android:layout_weight="1" />
    </LinearLayout>
</ScrollView>

2 个答案:

答案 0 :(得分:9)

由于接受的答案并没有完全解决这个问题,所以这里有一个适当的解决方案,让人们在搜索时来到这里:

首先,来自A​​ndroid开发团队的Romain Guy在这篇博文中发表了这篇文章:

http://www.curious-creature.org/2010/08/15/scrollviews-handy-trick/

基本上,您的ScrollView需要包含android:fillViewport="true"属性。

如果你做完之后事情不起作用,这里有几件事要检查:

  • ScrollView内的布局(例如LinearLayout)需要layout_height="wrap_content"
  • 您要展开的视图应为layout_height="wrap_content"
  • 您要展开的视图应为layout_weight="1.0"或类似

如果您不希望它/它们缩小太多,请不要忘记在要展开的视图中设置minLines="3"或类似内容。

答案 1 :(得分:0)

问题似乎来自您使用ScrollView。我已经使用ScrollView作为父容器测试了您的代码,并遇到了同样的问题。但是,如果我用LinearLayout替换ScrollView,则第二个EditText会正确扩展以填充整个屏幕。问题必须是ScrollViews被设计为包装到他们可能的最小尺寸,无论你在android:layout_height中放置什么设置。我尝试了另外几个布局,例如使用layout_abovelayout_below的RelativeLayout,但这些仅影响其最大大小,而不是空白时的大小。不幸的是,这意味着我不确定如何解决您的问题...有没有办法可以重新设计您的布局以使用除ScrollView之外的其他东西作为父容器?