Android RelativeLayout将多个视图一个一个地添加到另一个视图下面

Android RelativeLayout将多个视图一个一个地添加到另一个视图下面,android,android-layout,view,Android,Android Layout,View,我想制作一个添加按钮,将视图一个一个地添加到另一个视图下面。我不想要列表视图。我尝试在每个视图上设置id,然后使用setID添加,但当我单击按钮时,视图会在同一位置创建 final Button addView = (Button)findViewById(R.id.addView); mainLayout = (RelativeLayout)findViewById(R.id.activity_mainID); final RelativeLayout rv = new

我想制作一个添加按钮,将视图一个一个地添加到另一个视图下面。我不想要列表视图。我尝试在每个视图上设置id,然后使用setID添加,但当我单击按钮时,视图会在同一位置创建

    final Button addView = (Button)findViewById(R.id.addView);
    mainLayout = (RelativeLayout)findViewById(R.id.activity_mainID);
    final RelativeLayout rv = new RelativeLayout(MainActivity.this);
    rv.setId(-1);
    TextView tx = new TextView(this);
    rv.setBackgroundColor(ContextCompat.getColor(this,R.color.colorAccent));
    rv.addView(tx);
    mainLayout.addView(rv,100,100);

    addView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            RelativeLayout view = new RelativeLayout(MainActivity.this);
            RelativeLayout.LayoutParams  params1 = new RelativeLayout.LayoutParams(200,200);
            view.setId(id);
            TextView tv = new TextView(MainActivity.this);
            tv.setText("TEXT"+id);
            view.addView(tv);
            view.setBackgroundColor(ContextCompat.getColor(MainActivity.this,R.color.colorPrimary));
            params1.addRule(RelativeLayout.BELOW, id--);
            mainLayout.addView(view,params1);
            id=id+2;
        }
    });
XML



编辑:我使用LinearLayout解决了我的问题,但仍然不知道我的第一个解决方案中有什么不正确。如果有人发现了,请与我分享。

当我的初始id为-1、0或1时,我也尝试过这样做,但遇到了一些奇怪的问题。将其设置为一个更高的初始值(我将其设置为4),突然间一切都按预期进行。我想原因是这些值代表了
视图组
类中的常量。

当我的初始id为-1、0或1时,我也尝试过这样做,但遇到了一些奇怪的问题。将其设置为一个更高的初始值(我将其设置为4),突然间一切都按预期进行。我猜原因是这些值代表了
视图组
类中的常量。

为什么不使用linearLayout?因为我希望它是可点击的,并且我想如果setId可用,那么你可以使用setTag和getTag为什么不使用linearLayout?因为我希望它是可点击的,并且我想如果setId可用,那么你可以使用setTag和getTag
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:weightSum="10"
    android:id="@+id/activity_mainID"
    >
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/addView"
    android:text="ADD"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"/>

    </RelativeLayout>