0

我对这段代码有困难:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    RelativeLayout layout = (RelativeLayout)findViewById(R.id.RelativeLayout1);
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);

我在xml中有我的RelativeLayout1,如下所示:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ScrollView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:paddingLeft="60dp"
    android:paddingTop="53dp" >

但是当我应用滚动视图时,RelativeLayout1 的 fill_parent 不能正常工作,因为它不是滚动视图的子项。当它不是一个孩子(即我完全删除滚动视图)时,相对布局会覆盖整个屏幕,就像我喜欢的那样。但是当我把它放在滚动视图中时,即使我使用了fill_parent,它也只会到达相对布局内的最后一个元素(一个按钮)。

所以我正在以编程方式尝试它是否有所作为,但我似乎无法弄清楚如何在代码的第一位将我的 params 变量应用到我的布局中。如果您有任何其他想法,也请告诉我。

4

3 回答 3

1

您忘记调用 setter 方法layout.setLayoutParams(params)。要应用您创建的参数,您必须将它们提供给实际布局。

当父级是 ScrollView 时,请谨慎使用 fill_parent。当 Scroll 视图调整其大小以适应其子级时。

于 2012-07-31T13:19:25.563 回答
0

我想出了如何通过向滚动视图添加一个字段而不是以编程方式执行此操作来解决我的问题。在 ScrollView 中,我必须设置以下内容:

android:fillViewport="true"
于 2012-07-31T13:21:20.180 回答
0

如果您希望 RelativeLayout 填满 ScrollView,请将该属性添加android:fillViewport="true"到您的 ScrollView。

在此处查看 Romain Guy 的相同帖子:ScrollView 的便捷技巧

于 2012-07-31T13:22:09.603 回答