我在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链接
答案 0 :(得分:95)
您的EditText的高度应为wrap_content
。 fill_parent
中没有任何含义ScrollView
。如果您希望EditText
在内容小于ScrollView
时填充ScrollView
,请使用android:fillViewport="true"
上的ScrollView
。
答案 1 :(得分:9)
是的,正如Romain所说,scrollview需要遵循组合。
android:fillViewport="true"
android:layout_height="wrap_content"