如何在android中以编程方式更改编辑文本的位置?

我使用RelativeLayout以编程方式创建了许多编辑文本。 每个编辑文本的默认宽度为wrap_content,但是当编辑文本到达屏幕边缘时,它会直观地更改其大小。 那么当这种情况发生时,如何让它移动到下一行呢?

private EditText createEditText(EditText editText1, EditText editText2, String word){ RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams( editText.getLayoutParams().width, editText.getLayoutParams().height ); layoutParams.addRule(RelativeLayout.RIGHT_OF, editText1.getId()); layoutParams.addRule(RelativeLayout.BELOW, textView.getId()); layoutParams.leftMargin += 60; editText2.setHint("" + word); editText2.setHintTextColor(editText.getSolidColor()); editText2.setBackgroundResource(R.drawable.rounded_edittext); editText2.setLayoutParams(layoutParams); editText2.setPadding(editText.getPaddingLeft(), editText.getPaddingTop(), editText.getPaddingRight(), editText.getPaddingBottom()); editText2.setId(View.generateViewId()); relativeLayout.addView(editText2); return editText2; } 

在android中尝试FlowLayout,并在其中动态扩展TextViews。

而不是你可以在每行中使用具有固定数量子节点的Linearlayout,如果这样做,则子节点必须具有相同的layout_weight。

但是,我会要求您在android中简单地将RelativeLayout替换为FlowLayout ,而不是进行如此大的争议

你能尝试什么 不确定,是否可行。 您可以做的是计算onCreate上的屏幕宽度,并检查视图是否超过该值,使新的相对值低于最后一个。 说实话,线性布局将更容易使用重量属性来维护。