29

我在使用 ScrollViews 时遇到了很多问题。最近我尝试创建一个内容超过屏幕大小的 LinearView,因此我使用父元素 ScrollView 创建了新布局,并将其宽度和高度设置为自定义值(布局必须显示为对话框 - 不填满整个屏幕)。

当元素被选中时,红色边框似乎包含预定义的 ScrollView LayoutWidth 和 LayoutHeight 的矩形,这是可以的。然后我放置在 LinearView 内并将值 LayoutWidth 和 LayoutHeight 设置为 fill_parent。

然后,当我开始将元素添加到 LinearLayout 中时,边框(红色)包裹了插入的元素,而不是整个父 ScrollView。

因此,当 LinearLayout(ScrollView 的子项)的内容超过父 ScrollView 的大小时,滚动不会出现,并且底部元素根本不可见。

无论如何..在那种情况下,XML内容过于广泛,无法在此处发布问题,现在我在更简单的示例中遇到了同样的问题。

布局的以下部分旨在成为可滚动的 EditText(以防用户输入超出小部件的主要大小)。我想将 EditText 高度设置为 120px,所以我将父 ScrollView 高度设置为 120px,将子 EditText 设置为 fill_parent。同样在这种情况下,EditText 不会填充整个 ScrollView 区域,而是填充一行:

 <ScrollView android:layout_height="120px" android:layout_width="fill_parent">
<EditText android:id="@+id/txtContent" android:layout_height="fill_parent" android:layout_width="fill_parent" android:text="TestContent">
</EditText>
</ScrollView>

有谁知道如何重塑上面的内容,以便 EditText 填充父控件,并且如果用户的输入超过控件大小,滚动出现?

谢谢!

编辑:

以下是布局截图

删除了无效的 ImageShack 链接
删除了无效的 ImageShack 链接

4

2 回答 2

95

您的 EditText 的高度应为wrap_content. fill_parent在 a 中没有任何意义ScrollView。如果您想在内容小于 时EditText填充您的内容,请使用.ScrollViewScrollViewandroid:fillViewport="true"ScrollView

于 2010-01-09T19:40:20.723 回答
9

是的,正如罗曼所说,滚动视图需要以下组合。

  1. 对于滚动视图android:fillViewport="true"
  2. 对于 ScrollView 的孩子android:layout_height="wrap_content"
于 2011-08-24T04:57:48.793 回答