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

时间:2017-04-18 16:51:29

标签: java 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;
}

2 个答案:

答案 0 :(得分:1)

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

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

但是,我会要求您只需将 RelativeLayout 替换为安卓

中的 FlowLayout ,而不是进行如此大的争议。

答案 1 :(得分:0)

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