Java 在android中,如何在不重叠的情况下将文本视图数组添加到相对布局中?

Java 在android中,如何在不重叠的情况下将文本视图数组添加到相对布局中?,java,android,android-relativelayout,Java,Android,Android Relativelayout,我正在寻找一个解决方案,以解决我的问题,我的所有文本视图重叠自己,当被添加到相对布局。事实上,我需要把它们放在每一个后面。其他我已经读过的答案,我遵循它们,但没有什么可以解决它。有人能告诉我哪里做错了吗 这是我的密码: for (int i=0;i<parts.length;i++) { valueTV[i] = new TextView(this); valueTV[i].setText(parts[

我正在寻找一个解决方案,以解决我的问题,我的所有文本视图重叠自己,当被添加到相对布局。事实上,我需要把它们放在每一个后面。其他我已经读过的答案,我遵循它们,但没有什么可以解决它。有人能告诉我哪里做错了吗

这是我的密码:

            for (int i=0;i<parts.length;i++)
        {
            valueTV[i] = new TextView(this);
            valueTV[i].setText(parts[i]);
            valueTV[i].setId(i);
            valueTV[i].setWidth(300);

            RelativeLayout.LayoutParams lparams = new RelativeLayout.LayoutParams
                    (RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
                linearLayout_Skills.setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
            }
            linearLayout_Skills.setBackgroundColor(getResources().getColor(R.color.blue));
            if(i>=1)
            {
                lparams.addRule(RelativeLayout.END_OF, valueTV[i-1].getId());
                valueTV[i].setLayoutParams(lparams);
            }else {
                lparams.addRule(RelativeLayout.ALIGN_PARENT_START);
                valueTV[i].setLayoutParams(lparams);
            }
            linearLayout_Skills.addView(valueTV[i]);


        }
for(inti=0;i=Build.VERSION\u code.JELLY\u BEAN\u MR1){
linearLayout\u Skills.setLayoutDirection(视图.布局方向\u RTL);
}
linearLayout_Skills.setBackgroundColor(getResources().getColor(R.color.blue));
如果(i>=1)
{
lparams.addRule(RelativeLayout.END_OF,valueTV[i-1].getId());
valueTV[i].setLayoutParams(LPARAM);
}否则{
lparams.addRule(RelativeLayout.ALIGN\u PARENT\u START);
valueTV[i].setLayoutParams(LPARAM);
}
线性布局_Skills.addView(valueTV[i]);
}
XML代码:

                    <RelativeLayout
                        android:id="@+id/linearSkills"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layoutDirection="rtl"
                        android:paddingTop="5dp"            

                    </RelativeLayout>

您可以使用
相对布局

这就是主要思想,首先定义关系布局

  //layout variable is your relative layout
  RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
  layout.setLayoutParams(layoutParams); 
然后像这样定义一个param变量

  RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
  TextView tv2 = new TextView(this);
  params1.addRule(RelativeLayout.BELOW, tv1.getId());
  tv2.setId(2);
  tv2.setText("textView2");
之后,使用id定义textView(在本例中,该id可以是其在数组中的位置)

下一个textView将这样声明

  RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
  TextView tv2 = new TextView(this);
  params1.addRule(RelativeLayout.BELOW, tv1.getId());
  tv2.setId(2);
  tv2.setText("textView2");
最后,使用定义的参数设置视图

  layout.addView(tv2, params1);

这是一个完整的示例,您可以检查

FlexboxLayout似乎更适合此任务。您能告诉我一种使用我的相对布局解决此问题的方法吗?可能重复谢谢,但我想这就是我在代码中所做的吗?不是吗?你没有设置下面的属性,你设置的是ALIGN\u PARENT\u START这就是它们重叠的原因如果你查看我的情况,第一个文本视图设置为START,下一个文本视图设置为上一个文本视图的末尾