添加View作为第一个孩子

时间:2012-11-03 10:12:39

标签: android scrollview relativelayout

我正在开发一个带有ScrollView的应用程序,其中的大部分视图都被添加到onCreate的RelativeLayout。像这样: enter image description here

我还想在运行时添加Views。这些被添加到上图中的当前位置。我想要做的是在运行时期间在所需位置添加视图。

我怎样才能做到这一点?

4 个答案:

答案 0 :(得分:1)

按照建议将ScrollView内的布局转换为LinearLayout,然后使用:

addView(child, index, layoutParams)

LinearLayout上。

答案 1 :(得分:1)

我认为答案包含在最后一行(parent.addView(brick, 0 );),但是对于排除误解,我发布了所有代码。 现在我正在做同样的事情

<强> XML
activity_view.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
>
    <ScrollView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
    >
        <LinearLayout android:id="@+id/parent"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:orientation="horizontal"
        >
        </LinearLayout>
    </ScrollView>
</RelativeLayout>

tpl_yellow_brick.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="42dp"
    android:layout_width="42p"
>
    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="I'm square yellow brick"            
    />
</LinearLayout>

java

View brick = getLayoutInflater().inflate(R.layout.tpl_yellow_brick, null);
ViewGroup parent = findViewById(R.id.parent);
parent.addView(brick, 0);

答案 2 :(得分:0)

将此设置为滚动视图   android:orientation="vertical"android:scrollbars="vertical"

答案 3 :(得分:0)

您可以将RelativeLayout转换为LinearLayout并设置android:orientation="vertical"

在此LinearLayout中,您可以使用android:orientation="horizontal"为水平视图嵌套另一个LinearLayout。

这样,对于每个水平视图部分,您可以将子LinearLayout添加到您的父Linearlayout,并且每个子项将根据您的需要垂直排列。