我正在使用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;
}
答案 0 :(得分:1)
在android中尝试FlowLayout,并在其中动态扩展TextViews。
而不是你可以在每行中使用具有固定数量子节点的Linearlayout,如果这样做,则子节点必须具有相同的layout_weight。
但是,我会要求您只需将 RelativeLayout 替换为安卓
中的 FlowLayout ,而不是进行如此大的争议。答案 1 :(得分:0)
你可以尝试什么。不确定,是否可行。 您可以做的是计算onCreate上的屏幕宽度,并检查视图是否超过该值,使新的相对值低于最后一个。 说实话,线性布局使用重量属性更容易维护。