在我的Android应用中,我有一个标签Activity
。在其中一个标签中,我有两个TextView
和两个EditText
。
第一个EditText
只有一行,没关系。但是,我希望其他EditText
,android: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>
答案 0 :(得分:9)
由于接受的答案并没有完全解决这个问题,所以这里有一个适当的解决方案,让人们在搜索时来到这里:
首先,来自Android开发团队的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_above
和layout_below
的RelativeLayout,但这些仅影响其最大大小,而不是空白时的大小。不幸的是,这意味着我不确定如何解决您的问题...有没有办法可以重新设计您的布局以使用除ScrollView之外的其他东西作为父容器?