Android:ScrollView问题

时间:2010-01-09 12:14:20

标签: android layout scrollview

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

当选择元素时,红色边框似乎包含预定义ScrollView LayoutWidth和LayoutHeight的矩形,这是正常的。然后我放入LinearView并将值LayoutWidth和LayoutHeight设置为fill_parent。

然后当我开始将元素添加到LinearLayout时,边框(红色lile)包装了插入的元素,而不是整个父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链接

2 个答案:

答案 0 :(得分:95)

您的EditText的高度应为wrap_contentfill_parent中没有任何含义ScrollView。如果您希望EditText在内容小于ScrollView时填充ScrollView,请使用android:fillViewport="true"上的ScrollView

答案 1 :(得分:9)

是的,正如Romain所说,scrollview需要遵循组合。

  1. for ScrollView android:fillViewport="true"
  2. 适用于ScrollView的儿童android:layout_height="wrap_content"